- 微信公眾平臺開發最佳實踐
- 方倍工作室
- 456字
- 2019-01-01 00:06:59
2.1 新浪SAE
Sina App Engine(以下簡稱SAE)是新浪研發中心于2009年8月開始內部開發,并在2009年11月3日正式推出第一個Alpha版本的國內首個公有云計算平臺(http://sae.sina.com.cn),SAE是新浪云計算戰略的核心組成部分。
SAE作為國內的公有云計算,從開發伊始借鑒吸納Google、Amazon等國外公司的公有云計算的成功技術經驗,并很快推出不同于他們的具有自身特色的云計算平臺。SAE選擇在國內流行最廣的Web開發語言PHP作為首選的支持語言,Web開發者可以在Linux、Mac、Windows上通過SVN或者Web版在線代碼編輯器進行開發、部署、調試,團隊開發時還可以進行成員協作,不同的角色將對代碼、項目擁有不同的權限;SAE提供了一系列分布式計算、存儲服務供開發者使用,包括分布式文件存儲、分布式數據庫集群、分布式緩存、分布式定時服務等,這些服務將大大降低開發者的開發成本。同時SAE整體架構的高可靠性和新浪的品牌保證大大降低了開發者的運營風險。另外,作為典型的云計算,SAE采用“所付即所用,所付僅所用”的計費理念,通過日志和統計中心精確地計算每個應用的資源消耗(包括CPU、內存、磁盤等)。
總之,SAE就是簡單高效的分布式Web服務開發、運行平臺。
2.1.1 申請賬號
SAE的注冊地址為http://sae.sina.com.cn/?m=user&a=reg,在瀏覽器中輸入該網址,將自動跳轉到“SAE新浪云計算平臺”在新浪微博的應用授權界面,如圖2-1所示。
如果你還沒有新浪微博賬號,需要注冊一個,注冊新浪微博賬號的過程比較簡單,本書就不再介紹了。在圖2-1中填寫新浪微博賬號及密碼之后,點擊“登錄”按鈕,將跳轉到授權確認頁面,如圖2-2所示。
點擊“授權”按鈕,將跳轉到SAE的用戶注冊頁面,如圖2-3所示。
填寫真實姓名、安全郵箱、安全密碼、確認密碼、綁定手機及驗證碼之后,點擊“下一步”按鈕,將跳轉到手機號驗證頁面,如圖2-4所示。

圖2-1 SAE登錄界面

圖2-2 SAE新浪云計算平臺授權確認頁面

圖2-3 SAE用戶注冊頁面

圖2-4 SAE手機認證頁面
填寫手機收到的短信驗證碼后,點擊“驗證手機”按鈕,將提示注冊成功。
至此,我們成功注冊了SAE賬號。
2.1.2 創建應用
使用注冊成功的新浪微博賬號登錄SAE,登錄后界面如圖2-5所示。

圖2-5 SAE登錄頁面

圖2-6 應用列表
在最上方右側的導航列表中,點擊“我的應用”鏈接,再從下拉列表中選擇“應用列表”鏈接,將跳轉到“應用列表”頁面,如圖2-6所示。
點擊頁面中的“創建新應用”按鈕,這時會彈出提示框,提示禁止放置違法違規內容,點擊“繼續創建”按鈕,彈出創建應用頁面,如圖2-7所示。

圖2-7 創建應用
在應用創建頁面中,依次填寫二級域名(AppID)、應用名稱、驗證碼,開發語言選擇PHP,應用類型選擇web應用。如果AppID已經被其他人注冊,會提示已經被占用,需要重新填入。填寫完畢后,點擊“創建應用”按鈕,將彈出安全認證框,系統將要求輸入安全密碼,在正確輸入安全密碼之后,將提示創建成功,如圖2-8所示。

圖2-8 應用創建成功
應用創建成功之后,會自動跳轉到應用列表中,在應用列表中可以看到剛才創建的應用。
2.1.3 創建版本
在應用列表中,點擊剛才創建的應用cctv15,進入應用信息頁面,如圖2-9所示。

圖2-9 應用信息
找到左側目錄下的“應用管理”,點擊下面的“代碼管理”鏈接,跳轉到代碼管理頁面,如圖2-10所示。

圖2-10 代碼管理
點擊右側的“這里創建一個版本”按鈕,將彈出創建版本頁面,如圖2-11所示。
版本號默認為1,可以不更改,直接點擊“創建”按鈕,如圖2-12所示。

圖2-11 創建版本

圖2-12 創建版本成功
至此,就成功創建了一個域名URL為http://cctv15.sinaapp.com/的SAE應用了。這個URL將會在后面用到。
2.1.4 上傳代碼
將以下PHP代碼保存到文件index.php。或者直接使用微信官方提供的文件。
<?php /* 方倍工作 http://www.cnblogs.com/txw1958/ CopyRight 2013 www.doucube.com All Rights Reserved */ define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); if (isset($_GET['echostr'])) { $wechatObj->valid(); }else{ $wechatObj->responseMsg(); } class wechatCallbackapiTest { public function valid() { $echoStr = $_GET["echostr"]; if($this->checkSignature()){ echo $echoStr; exit; } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $keyword = trim($postObj->Content); $time = time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; if($keyword == "?" || $keyword == "?") { $msgType = "text"; $contentStr = date("Y-m-d H:i:s",time()); $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; } }else{ echo ""; exit; } } } ?>

圖2-13 設置文件為以UTF-8無BOM格式編碼
請注意,必須使用專業的開發軟件來保存操作,如Notepad++,不要使用Windows自帶的記事本等,保存時需設置格式為“UTF-8無BOM格式”。圖2-13是Notepad++的設置。
然后使用壓縮軟件WinRAR將其壓縮成ZIP格式(見圖2-14),注意不能用RAR格式,因為SAE不支持RAR格式的文件上傳。

圖2-14 壓縮ZIP文件
這樣就會生成一個index.zip的壓縮文件。
再回到我們之前創建的SAE應用的代碼管理界面中,點擊“操作”按鈕,在下拉列表中選擇“上傳代碼包”,如圖2-15所示。

圖2-15 選擇上傳代碼包
選擇上傳代碼包后,將彈出“代碼上傳”頁面,點擊“上傳文件”按鈕,選擇剛才壓縮的index.zip文件,點擊“上傳”按鈕,上傳成功后的界面如圖2-16所示。

圖2-16 代碼上傳
再次回到代碼管理界面中,點擊“操作”按鈕,在下拉列表中選擇“編輯代碼”,如圖2-17所示。
在新的代碼編輯頁面中,可以看到index.php已經上傳成功,雙擊該文件可以查看源代碼,如圖2-18所示。

圖2-17 編輯代碼

圖2-18 查看源代碼
至此,新浪云應用的創建完成,并且成功上傳了微信公眾平臺的接口文件。
- Java程序設計(慕課版)
- Kali Linux Web Penetration Testing Cookbook
- Debian 7:System Administration Best Practices
- QGIS By Example
- NetBeans IDE 8 Cookbook
- RealSenseTM互動開發實戰
- Learning AWS
- Cocos2d-x Game Development Blueprints
- Raspberry Pi Robotic Blueprints
- FFmpeg開發實戰:從零基礎到短視頻上線
- Android Studio Cookbook
- Practical Microservices
- Visual Basic程序設計全程指南
- Learning Android Application Testing
- 深入分析GCC