



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、昨天這篇SAE的課程貌似很給力,收到一千多回復(fù),多謝朋友們捧場(chǎng),不少人 在問(wèn)那個(gè)菜單的教程是第幾篇,是微信公眾平臺(tái)入門(mén)到精通Vol.6,所有的課程可以輸入微信教程查看!還有一些朋友在問(wèn)開(kāi)發(fā)模式是否可以群發(fā)消息或者點(diǎn)對(duì)點(diǎn)下發(fā)消息,這個(gè)是不 行的,群發(fā)消息、人工回復(fù)消息還是得去公眾平臺(tái),除非你開(kāi)外掛模擬登陸公 眾平臺(tái)后臺(tái)操作,當(dāng)然這個(gè)肯定是違規(guī)的,會(huì)被封號(hào)。另外大家在進(jìn)入開(kāi)發(fā)模式前還是要提醒下,由于微信現(xiàn)在接口開(kāi)放的還不多, 圖片回復(fù)、視頻回復(fù)接口都沒(méi)有,也就是用戶(hù)回復(fù)關(guān)鍵字獲取圖片或者視頻是 無(wú)法做到的,如果偏運(yùn)營(yíng)的公眾賬號(hào)現(xiàn)在并不推薦使用開(kāi)發(fā)模式。第九章? ?用微信開(kāi)發(fā)模式 做歡迎詞今天的重點(diǎn)
2、是如何將微信開(kāi)發(fā)模式和 SAE對(duì)接,希望朋友們已經(jīng)完成了 SAE 注冊(cè),如果還沒(méi)搞定的話請(qǐng)抓緊,有問(wèn)題的話請(qǐng)及時(shí)提出,接下來(lái)的教程都在 那上面進(jìn)行。在教程開(kāi)始前建議朋友們可以先注冊(cè)一個(gè)新的公眾賬號(hào),或者用非主賬號(hào)當(dāng)做 開(kāi)發(fā)測(cè)試賬號(hào),因?yàn)殚_(kāi)發(fā)調(diào)試過(guò)稱(chēng)中可能會(huì)經(jīng)常出現(xiàn)賬號(hào)無(wú)法正常回復(fù)用戶(hù)的 情況,影響正常使用,所以在學(xué)習(xí)期間以及后期開(kāi)發(fā)過(guò)程中最好有一個(gè)測(cè)試公 眾賬號(hào),等開(kāi)發(fā)完成了再切換到主賬號(hào)上,也是非常方便的。一、微信公眾平臺(tái)與SAE對(duì)接通訊我們先回到微信公眾平臺(tái)上來(lái),點(diǎn)擊高級(jí)功能進(jìn)入,選擇開(kāi)發(fā)模式進(jìn)入開(kāi)發(fā)模 式的頁(yè)面,使用開(kāi)發(fā)模式前記得先把編輯模式關(guān)閉,如下圖:先不著急點(diǎn)開(kāi)關(guān),點(diǎn)了也沒(méi)用,會(huì)提
3、示必須先成為開(kāi)發(fā)者,但第一步也不是點(diǎn) 擊成為開(kāi)發(fā)者”按鈕,而是點(diǎn)擊查看文檔按鈕,我們要去下載一個(gè)文件,進(jìn)入 開(kāi)發(fā)指南頁(yè)面后點(diǎn)擊左側(cè)菜單的 消息接口指南”如下圖:然后在右邊打開(kāi)的頁(yè)面導(dǎo)航里點(diǎn)擊示例代碼”如下圖:頁(yè)面直接會(huì)跳到最底部,當(dāng)然直接拉到頁(yè)面最下也可以,可以看到示例代碼下 載,如圖:點(diǎn)擊下載后會(huì)得到一個(gè)“wx_sample.php的文件,這個(gè)就是微信接口的 SDK文 件,首先我們將該文件改個(gè)名字,比如“wxnterface.php,這里強(qiáng)調(diào)下文件的注意事項(xiàng):1、后綴必須是.php ; 2、名字不能用中文,盡量是全小寫(xiě)字母,或 者字母+下劃線+字母組成;3、名字要便于記憶;4、不要把名字設(shè)成
4、in dex.php、weix in .php、adm in .php這些。讓大家改名的原因是為了安全,因?yàn)檫@是一個(gè)和微信公眾平臺(tái)通訊的接口文 件,原則上要隱蔽,以免被人惡意攻擊。改完名字后打開(kāi)SAE,進(jìn)入到咱們的應(yīng)用,點(diǎn)擊編輯代碼進(jìn)入編輯后臺(tái),把文件上傳到SAE里,如下圖:雙擊上傳的文件,進(jìn)入該文件的編輯模式,可以看到密密麻麻的一片代碼,朋 友們不要被嚇到,咱們一步步來(lái),首先修改第7行的通訊秘鑰,如圖:那些斜杠和星號(hào)的是注釋?zhuān)梢钥吹降?6行的注釋英文是“define your token, 也就是說(shuō)第7行的代碼功能是定義微信公眾平臺(tái)與 SAE應(yīng)用通訊時(shí)約定的一個(gè) 秘鑰。這里解釋下defin
5、e(TOKEN, weixin)這段代碼:define是用來(lái)給常量賦值的函數(shù),這句話的意思是賦予“TOKEN這個(gè)常量值為a”weixir。PS :常量和變量,是每一種編程語(yǔ)言中都存在的,常量值被定義后,在腳本的 其他任何地方都不能被改變。 一個(gè)常量的名稱(chēng)可以由英文字母、下劃線、和數(shù) 字組成,但數(shù)字不能作為首字母出現(xiàn)。變量被定義后隨時(shí)可以重新賦值,其命 名規(guī)則與常量一樣,區(qū)別是變量最前面還要加“蔚號(hào),而常量直接使用它的名稱(chēng)就可以了,如代碼第67行,就是給變量$token賦值,值為之前定義的常量 TOKEN,可以看到變量和常量的賦值方式也是不同的,變量賦值很簡(jiǎn)單不需要 define 函數(shù)。扯了那么
6、多咱們先把秘鑰改了吧,這個(gè)秘鑰其實(shí)有點(diǎn)像設(shè)置一個(gè)密碼,微信公 眾平臺(tái)對(duì)秘鑰設(shè)置有要求是3位以上的字母或數(shù)字,我這里是測(cè)試所以改個(gè)“123456,” 如圖:修改保存后,回到微信公眾平臺(tái)的開(kāi)發(fā)模式,點(diǎn)擊成為開(kāi)發(fā)者”按鈕,然后會(huì)到接口配置信息”頁(yè)面,如下圖:1. 輸入各位在SAE上的應(yīng)用地址+反斜杠+改名后的SDK文件,比如我這 里輸入的是2. 這里就是填寫(xiě)在SDK文件里設(shè)置的秘鑰,我這里填寫(xiě)的是 “123456,”大 家根據(jù)自己設(shè)置的填寫(xiě)。填寫(xiě)完后點(diǎn)擊提交,如果一切順利就會(huì)提示成功并跳轉(zhuǎn)頁(yè)面到開(kāi)發(fā)者頁(yè)面,如 下圖:1. 接口配置信息。這里可以看到咱們?cè)O(shè)定的那些接口信息都清楚的顯示出 來(lái),如果接口的
7、地址或者token改變的話點(diǎn)擊修改按鈕可以重新設(shè)置。2. 接口權(quán)限表。打鉤的就是咱們可以使用的接口權(quán)限,關(guān)于這些接口的權(quán)限介紹可以查看微信公眾平臺(tái)入門(mén)到精通Vol.7,有些朋友如果已經(jīng)拿到自定義菜單內(nèi)測(cè)資格的,那么自定義菜單也會(huì)有打鉤。3. 最重要的一步就是打開(kāi)開(kāi)發(fā)模式的開(kāi)關(guān),現(xiàn)在公眾賬號(hào)進(jìn)入開(kāi)發(fā)模式 了!這個(gè)時(shí)候你會(huì)發(fā)現(xiàn)你的公眾賬號(hào)無(wú)論是關(guān)注還是輸入都沒(méi)有提示了,原來(lái)編輯 模式下設(shè)置的東西都不管用了,因?yàn)楣娰~號(hào)已經(jīng)對(duì)接到了你的SAE接口,SO,我們開(kāi)始下一步吧,先來(lái)個(gè)歡迎詞!二、開(kāi)發(fā)模式下的歡迎詞先控訴下微信開(kāi)發(fā)模式的設(shè)置不合理,接口校驗(yàn)和接口服務(wù)用同一個(gè)文件,而 校驗(yàn)時(shí)這個(gè)文件必須直接返
8、回echostr參數(shù)內(nèi)容,當(dāng)接口要啟動(dòng)正式服務(wù)時(shí)又 得修改同個(gè)文件 好了這些跟大家無(wú)關(guān),抱怨一下而已!前面接口對(duì)接成功后,公眾賬號(hào)無(wú)法再與用戶(hù)互動(dòng)了,那么我們先把訂閱歡迎 這個(gè)功能恢復(fù)吧,回到SAE平臺(tái)上,在編輯平臺(tái)新建一個(gè)文件,我們把它命名 為“wx_tpl.php,”這個(gè)文件的目的是存放微信輸出內(nèi)容的模板,細(xì)心的朋友會(huì)發(fā) 現(xiàn)這就是目前接口可以給用戶(hù)回復(fù)的三種消息格式,分別是文本、圖文、音 樂(lè)。內(nèi)容如圖:然后把前面的那個(gè)SDK文件內(nèi)容全部清空,沒(méi)錯(cuò)就是全部清空,因?yàn)楣俜侥莻€(gè) SDK除了用來(lái)做接口校驗(yàn)幾乎沒(méi)有什么用處。然后換上自己的代碼,如圖:給大家解釋下這一大段代碼:第3行,include_
9、onee是用來(lái)加載其他php文件的函數(shù),在這里加載了 wx_tpl.php,加載文件是可以設(shè)置路徑的,由于現(xiàn)在兩個(gè)文件在同一目錄下, 因此沒(méi)有加路徑。這樣做的好處是有利于代碼復(fù)用,一些經(jīng)常用到的類(lèi)、函數(shù) 和變量可以放在其他文件統(tǒng)一加載,讓代碼簡(jiǎn)潔輕便。第6行,接收微信公眾平臺(tái)發(fā)送過(guò)來(lái)的用戶(hù)消息,該消息數(shù)據(jù)結(jié)構(gòu)為XML,不是php默認(rèn)的識(shí)別數(shù)據(jù)類(lèi)型,因此這里用了$GLOBALSHTTP_RAW_POST_DATA來(lái)接收,同時(shí)賦值給了 $postStr,這 里強(qiáng)調(diào)一個(gè)php的鐵律就是php對(duì)大小寫(xiě)是敏感的,也就是變量也好函數(shù)也 好,大小寫(xiě)不同是表示不同的變量或者函數(shù),即$Q1和$q1是兩個(gè)不同的變
10、量,大家在寫(xiě)代碼時(shí)千萬(wàn)注意。第9行,一個(gè)條件語(yǔ)句,empty是判斷變量是否為空的函數(shù),如果是空返回0否則返回1,感嘆號(hào)在這里是運(yùn)算符表示非(not的意思),非0就是1,非1 就是0,可能有點(diǎn)繞,意思就是如果$postStr不為空(接收到了數(shù)據(jù))就繼續(xù) 執(zhí)行下面的語(yǔ)句,如果為空就跳轉(zhuǎn)到 39行執(zhí)行(這里就執(zhí)行了兩句代碼,第一 句是輸出空字符串,第二句是退出)。PS:1、 php的邏輯運(yùn)算符有“ &”示與(并且的意思),“標(biāo)示或(或者的意 思)“表示非(不是的意思),記住并且理解這些符號(hào)對(duì)后面寫(xiě)代碼很有好 處2、所有的編程語(yǔ)言都有if.else.語(yǔ)句,php的規(guī)則是if(條件)執(zhí)行語(yǔ)句else執(zhí)行
11、語(yǔ)句,這里else可以沒(méi)有,或者可以多重判定,if(條件1)執(zhí)行語(yǔ) 句elseif(條件2)執(zhí)行語(yǔ)句else執(zhí)行語(yǔ)句。判斷條件用“(包含,執(zhí)行語(yǔ)句用“ 包含,相鄰最近的一對(duì)括號(hào)標(biāo)示一段腳本,大家在編寫(xiě)的時(shí)候不要漏掉后面 的半個(gè)括號(hào)。我在這段代碼里括號(hào)標(biāo)示的比較清楚,大家可以仔細(xì)參照一下。第12行,使用simplexml_load_string()函數(shù)將接收到的XML消息數(shù)據(jù)載入對(duì) 象$postObj中。這個(gè)嚴(yán)謹(jǐn)?shù)膶?xiě)法后面還得加個(gè)判斷是否載入成功的條件語(yǔ)句, 不過(guò)不寫(xiě)也沒(méi)事。第14行,將對(duì)象$postObj中的發(fā)送消息用戶(hù)的OPENID賦值給 $fromUsername變量,這里的-”是指針,大
12、家了解下就行了。第16行,將對(duì)象$postObj中的公眾賬號(hào)的ID賦值給$toUsername變量。第18行,將對(duì)象$postObj中的消息類(lèi)型賦值給$form_MsgType變量。第21行,判斷消息是否為事件消息,現(xiàn)在微信公眾賬號(hào)的用戶(hù)關(guān)注和取消訂閱 都是通過(guò)事件消息發(fā)送,因此咱們要?dú)g迎用戶(hù)關(guān)注首先得判斷來(lái)接收的消息類(lèi) 型是否為事件。這里要強(qiáng)調(diào)的是在php里一個(gè)“二用來(lái)賦值,“=用來(lái)比較是 否相等,大家千萬(wàn)注意在判斷語(yǔ)句時(shí)如果少寫(xiě)一個(gè)“=號(hào)這個(gè)判斷會(huì)永遠(yuǎn)成第24行,如果接收到的消息是事件消息,判斷事件類(lèi)型是否為訂閱,在事件消 息里“subscribe表示訂閱,“unsubscribe表示取消
13、訂閱。第29到32行,完成的是歡迎詞回復(fù)的輸出: 第29行是設(shè)定回復(fù)消息類(lèi)型為文本; 第30行是設(shè)定回復(fù)消息的內(nèi)容,其中可以使用表情符號(hào)的文本方式,換行使用n”,這里要注意的是字符串里如果要使用雙引號(hào)或者單引號(hào)一般用中文符號(hào),如果一定要用英文符號(hào),要在引號(hào)前面加反斜杠比如“echo ; ”輸出的是一個(gè)雙引號(hào);第31行,使用sprintf這個(gè)函數(shù)將格式化的數(shù)據(jù)寫(xiě)入到變量中去,其中“$textTp這個(gè)就是我們?cè)趙x_tpl.php里定義過(guò)的文本消息模板變量,后面的“ $fromUser name, $toUser name, time(), $msgType, $conten tStr 分別順序替換 模板里“竝置,也即是“$resultStr這個(gè)變量最后實(shí)際為:v!CDATA$fromUsernamex/ToUserN
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)管道的維護(hù)與檢修方法
- 工作中的自我管理與激勵(lì)方法
- 工業(yè)設(shè)計(jì)與科技創(chuàng)新的融合發(fā)展
- 工業(yè)風(fēng)味的文化創(chuàng)意街區(qū)轉(zhuǎn)型實(shí)踐
- 工業(yè)風(fēng)建筑設(shè)計(jì)理念與實(shí)踐
- 工業(yè)設(shè)計(jì)產(chǎn)業(yè)園在服務(wù)領(lǐng)域的應(yīng)用
- 工程中的液壓傳動(dòng)系統(tǒng)設(shè)計(jì)與分析
- 工廠企業(yè)消防安全管理體系
- 工程機(jī)械設(shè)備的技術(shù)改造與升級(jí)
- 工程教育中數(shù)據(jù)科學(xué)的課程設(shè)計(jì)
- 2024年山東省高中學(xué)業(yè)水平合格考生物試卷試題(含答案詳解)
- 電影敘事與美學(xué)智慧樹(shù)知到期末考試答案章節(jié)答案2024年南開(kāi)大學(xué)
- YYT 0663.3-2016 心血管植入物 血管內(nèi)器械 第3部分:腔靜脈濾器
- 【專(zhuān)業(yè)版】短視頻直播電商部門(mén)崗位職責(zé)及績(jī)效考核指標(biāo)管理實(shí)施辦法
- SOHO-VD 收獲變頻器手冊(cè)
- 修理廠大修發(fā)動(dòng)機(jī)保修合同
- 富血小板血漿(PRP)簡(jiǎn)介
- MOOC 網(wǎng)絡(luò)技術(shù)與應(yīng)用-南京郵電大學(xué) 中國(guó)大學(xué)慕課答案
- 四年級(jí)下冊(cè)數(shù)學(xué)教案-8.1確定位置丨蘇教版
- 乳粉大數(shù)據(jù)與智能制造
- 《初三中考動(dòng)員會(huì)》課件
評(píng)論
0/150
提交評(píng)論