關(guān)于我們
書單推薦
新書推薦
|
微信公眾平臺應(yīng)用開發(fā)實踐
本書由前騰訊公司軟件開發(fā)工程師根據(jù)微信6.x版撰寫,緊跟微信公眾平臺的技術(shù)發(fā)展,是目前微信公眾平臺應(yīng)用開發(fā)領(lǐng)域涵蓋內(nèi)容較全面、系統(tǒng)和深入的一本書。本書全面介紹了微信公眾平臺的開發(fā)模式、環(huán)境搭建、消息接口及高級接口,深入地解析了微信內(nèi)置瀏覽器的特性及Weixin JS接口,系統(tǒng)地講解了開發(fā)微信公眾號的流程、方法、技巧和注意事項,還簡要介紹了微信小程序的開發(fā)。本書案例豐富,提供了包括餐廳管家、微商城、微酒店、游戲開發(fā)、HTML 5小游戲5個項目的完整開發(fā)流程,探討的內(nèi)容包括自定義菜單、二維碼、微信支付、微信小店、位置服務(wù)等。學(xué)習(xí)完本書,讀者完全有能力開發(fā)企業(yè)級的公眾號。
本書適合于微信公眾平臺開發(fā)初學(xué)者,企業(yè)微信公眾號開發(fā)、公眾號運(yùn)營者及移動互聯(lián)網(wǎng)開發(fā)人員,也很適合有一定開發(fā)基礎(chǔ)但對微信公眾號項目開發(fā)不熟悉的讀者閱讀。
前騰訊公司資深軟件開發(fā)工程師專業(yè)奉獻(xiàn)涉及微信公眾平臺開發(fā)的方方面面,技術(shù)先進(jìn),原理與實踐并重提供餐廳管家、微商城、微酒店、游戲開發(fā)、HTML 5小游戲、微信與O2O、微信小程序項目的開發(fā)方法、技巧與流程,提升你的實際開發(fā)能力
微信公眾平臺的發(fā)展微信和短信、相機(jī)一樣,已經(jīng)逐漸成為手機(jī)的標(biāo)配工具。微信的即時通信、語音、視頻聊天、朋友圈、群聊等功能極大程度地迎合了大眾的溝通交流需求;微信公眾平臺、微信開放平臺、企業(yè)微信等功能極大程度地幫助企業(yè)以低成本直接對接大量客戶,有效地積累用戶;微信小程序、掃一掃功能更是促進(jìn)線上與線下、虛擬與現(xiàn)實、數(shù)字經(jīng)濟(jì)和傳統(tǒng)經(jīng)濟(jì)的融合。在騰訊公司最新披露的數(shù)據(jù)中,微信月活躍賬戶數(shù)達(dá)到8.89億,公眾平臺匯聚超過1000萬公眾賬號、20萬第三方開發(fā)者。對于微信公眾平臺應(yīng)用開發(fā)來說,公眾號也已經(jīng)成為標(biāo)配。很難想象一家企業(yè)沒有自己的服務(wù)號,一個媒體人沒有自己的訂閱號。
筆者一直關(guān)注微信公眾平臺的最新進(jìn)展。在微信公眾平臺發(fā)布之初,筆者撰寫了《微信公眾平臺開發(fā)基礎(chǔ)與實踐》(機(jī)械工業(yè)出版社,2014)一書,當(dāng)時微信版本為5.3;之后又撰寫了《微信公眾平臺應(yīng)用開發(fā)從入門到精通》(清華大學(xué)出版社,2015)一書,當(dāng)時微信版本為6.2。 時光流逝,現(xiàn)在距離上一本書發(fā)表已將近兩年,微信版本已到6.5。對于高速發(fā)展的IT行業(yè)來說,兩年時間確實能夠使知識變得陳舊,技術(shù)趨于落后。在這兩年時間,微信公眾平臺發(fā)布了微信JS-SDK來為HTML 5提供原生功能支持,增加了微信卡券、微信門店、微信小店等新功能,開放了微信連Wi-Fi、微信搖一搖周邊和微信掃一掃接口。最重要的是,微信團(tuán)隊在2017年1月9日發(fā)布了小程序,并將其與公眾號打通,這給IT從業(yè)者帶來了新的機(jī)遇與挑戰(zhàn)。于是,筆者有必要將公眾號的最新進(jìn)展記錄下來,給想了解公眾號最新技術(shù)的讀者提供一些幫助。 本書的更新之處除了公眾號最新的開放能力外,還有根據(jù)讀者意見的內(nèi)容修訂。之前的兩本書出版后,筆者收到了許多讀者的郵件,在疑問、建議和勘誤。筆者將讀者的意見進(jìn)行了整理,并在新書出版之際,對書中不明、易混、錯誤之處加以更正。 如何閱讀本書本書在內(nèi)容邏輯上分為4部分。 第一部分(第1章~第3章)介紹公眾平臺的基礎(chǔ)知識、編輯模式的使用和開發(fā)環(huán)境的搭建。通過這部分的學(xué)習(xí),讀者可以使用編輯模式來運(yùn)營公眾賬號,并通過簡單的配置來搭建開發(fā)環(huán)境,開發(fā)第一個DEMO應(yīng)用,為后面的學(xué)習(xí)打下基礎(chǔ)。 第二部分(第4章~第7章)重點(diǎn)介紹公眾平臺的消息相關(guān)接口及九大高級接口,提供完整的封裝類,還將介紹Weixin JS和JS SDK開發(fā)。讀者在學(xué)完本部分之后,能夠?qū)娖脚_提供的全部服務(wù)有所了解。本部分將提供眾多的案例供讀者學(xué)習(xí)。 第三部分(第8章~第12章)以大項目為例,每章實現(xiàn)一個公眾號的功能。5個項目分別為餐廳管家、微商城、微酒店、游戲開發(fā):誰是臥底、HTML 5小游戲開發(fā),探討的內(nèi)容包括自定義菜單、二維碼、微信支付、微信小店、位置服務(wù)等。學(xué)習(xí)完本部分,讀者完全有能力開發(fā)企業(yè)級的公眾號。 第四部分(第13、14章)為拓展閱讀,介紹微信公眾號在O2O領(lǐng)域的開放能力,并講解微信重磅推出的小程序。學(xué)習(xí)完本部分,讀者會了解到微信公眾號和小程序能做什么、能適應(yīng)什么樣的場景、能有多大的前景。 讀者對象對微信公眾平臺開發(fā)感興趣的人員。 微信公眾賬號運(yùn)營人員。 移動互聯(lián)網(wǎng)開發(fā)人員。 HTML 5開發(fā)人員。 已有微信開發(fā)基礎(chǔ),但對項目開發(fā)不熟悉的開發(fā)人員。 有編程經(jīng)驗,希望轉(zhuǎn)型做微信公眾平臺開發(fā)的人員。 技術(shù)交流由于筆者水平有限,加之編寫時間倉促,書中難免會出現(xiàn)一些錯誤或不準(zhǔn)確、不全面的地方,懇請讀者批評指正。為了更好地和讀者交流,筆者建立了一個網(wǎng)站,請訪問以下地址:https://www.weixinbook.net/同時,讀者有任何問題,可以發(fā)送郵件到davidsp@foxmail.com郵箱,筆者會盡快為您解答。 代碼下載本書配套源代碼的下載地址:https://www.weixinbook.net/download/。若下載有問題,請發(fā)送電子郵件至davidsp@foxmail.com,郵件標(biāo)題為“求代碼,微信公眾號開發(fā)”。 致謝感謝騰訊公司的微信團(tuán)隊,是他們創(chuàng)造了這款偉大的產(chǎn)品。 感謝清華大學(xué)出版社的王金柱編輯,感謝他在我寫作過程中提供的幫助和支持。 謹(jǐn)以此書獻(xiàn)給我的家人,以及微信公眾平臺和所有離不開微信的朋友們。 閆小坤2017年4月于北京
第1章 微信公眾平臺簡介 1
1.1 微信:連接一切 2
1.1.1 物聯(lián)網(wǎng) 2
1.1.2 二維碼革命 3
1.2 認(rèn)識微信公眾平臺 4
1.2.1 大事記 4
1.2.2 分類:服務(wù)號與訂閱號 5
1.2.3 微信認(rèn)證 6
1.2.4 公眾號運(yùn)營 7
1.2.5 微社區(qū) 8
1.2.6 微信公眾平臺管理后臺 8
1.3 本章小結(jié) 10
第2章 編輯模式和微信公眾號 11
2.1 開啟編輯模式 12
2.2 自動回復(fù)消息 12
2.2.1 開啟自動回復(fù) 13
2.2.2 被添加自動回復(fù) 13
2.2.3 消息自動回復(fù) 14
2.2.4 關(guān)鍵詞自動回復(fù) 15
2.2.5 自動回復(fù)優(yōu)先規(guī)則 16
2.3 自定義菜單 17
2.3.1 設(shè)置自定義菜單 17
2.3.2 設(shè)置動作 18
2.4 投票 19
2.5 案例分析 20
2.5.1 利用自動回復(fù)實現(xiàn)我的書目功能 20
2.5.2 自定義菜單的典型案例:小道消息 22
2.5.3 自定義菜單增加歷史消息 23
2.6 本章小結(jié) 24
第3章 搭建開發(fā)環(huán)境 25
3.1 啟用公眾平臺開發(fā)模式 26
3.1.1 申請網(wǎng)址接入 26
3.1.2 數(shù)據(jù)交換方式 28
3.1.3 接口列表 28
3.2 新浪云環(huán)境搭建 31
3.2.1 應(yīng)用創(chuàng)建 31
3.2.2 搭建本地開發(fā)環(huán)境 35
3.2.3 SAE常用服務(wù) 38
3.2.4 新浪云虛擬主機(jī) 40
3.3 BAE環(huán)境搭建 45
3.3.1 創(chuàng)建工程 46
3.3.2 BAE常用服務(wù) 47
3.4 開發(fā)第一個應(yīng)用 48
3.4.1 下載PHP SDK 48
3.4.2 微信公眾平臺接口測試賬號申請 48
3.4.3 上傳服務(wù)器 49
3.4.4 掃描二維碼 50
3.5 本章小結(jié) 51
第4章 消息接口API 52
4.1 接入開發(fā)者模式 53
4.2 基礎(chǔ)支持 54
4.2.1 申請測試賬號 54
4.2.2 獲取access_token 55
4.3 接收消息 58
4.3.1 文本消息 58
4.3.2 圖片消息 60
4.3.3 語音消息 61
4.3.4 地理位置消息 62
4.3.5 鏈接消息 64
4.3.6 公眾平臺消息體簽名及加、解密 67
4.4 接收事件消息 67
4.4.1 關(guān)注/取消關(guān)注事件 68
4.4.2 掃描二維碼事件 69
4.4.3 上報地理位置事件 71
4.4.4 自定義菜單事件 72
4.5 回復(fù)消息 74
4.5.1 回復(fù)文本消息 74
4.5.2 回復(fù)圖片消息 75
4.5.3 回復(fù)語音消息 76
4.5.4 回復(fù)視頻消息 78
4.5.5 回復(fù)音樂消息 79
4.5.6 回復(fù)圖文消息 81
4.6 生成帶參數(shù)的二維碼 84
4.6.1 創(chuàng)建二維碼ticket 84
4.6.2 通過ticket換取二維碼 86
4.7 客服接口 87
4.8 語音識別 92
4.8.1 讓微信聽懂你的話 92
4.8.2 翻譯助手 92
4.9 本章小結(jié) 96
第5章 高級接口 97
5.1 自定義菜單 98
5.1.1 自定義菜單的創(chuàng)建 98
5.1.2 自定義菜單的查詢和刪除 102
5.2 上傳/下載多媒體文件 102
5.2.1 上傳多媒體文件 102
5.2.2 下載多媒體文件 104
5.2.3 測試案例 105
5.3 用戶管理 106
5.3.1 管理分組 106
5.3.2 獲取用戶基本信息 112
5.3.3 獲取用戶列表 114
5.4 獲取用戶地理位置 116
5.5 OAuth 2.0網(wǎng)頁授權(quán) 117
5.5.1 配置授權(quán)回調(diào)域名 118
5.5.2 OAuth 2.0授權(quán)流程 119
5.5.3 代碼實現(xiàn) 122
5.5.4 案例 124
5.6 高級群發(fā)接口 126
5.6.1 上傳圖文消息素材 126
5.6.2 根據(jù)分組進(jìn)行群發(fā) 128
5.6.3 根據(jù)OpenID列表群發(fā) 134
5.6.4 刪除群發(fā) 134
5.6.5 事件推送群發(fā)結(jié)果 135
5.7 多客服功能 136
5.8 微信小店 139
5.9 模板消息 140
5.9.1 創(chuàng)建模板 140
5.9.2 發(fā)送模板消息 141
5.10 企業(yè)號 142
5.10.1 申請企業(yè)號 143
5.10.2 組織架構(gòu) 144
5.10.3 發(fā)送通知 145
5.11 本章小結(jié) 145
第6章 微信內(nèi)置瀏覽器Weixin JS接口 146
6.1 微信內(nèi)置瀏覽器 147
6.1.1 特征 147
6.1.2 WeixinJSBridge 148
6.2 WeixinJSBridge使用說明 150
6.2.1 WeixinJSBridge接口一覽 150
6.2.2 界面接口 151
6.2.3 分享接口 153
6.2.4 監(jiān)聽事件 156
6.2.5 功能接口 158
6.2.6 第三方App接口 159
6.3 案例 162
6.3.1 WeixinJSBridge的加載順序 162
6.3.2 隱藏/顯示W(wǎng)ebView分享按鈕 163
6.3.3 隱藏/顯示W(wǎng)ebView底部的導(dǎo)航欄 165
6.3.4 跳轉(zhuǎn)到掃描二維碼界面 167
6.3.5 關(guān)閉WebView 168
6.3.6 圖片預(yù)覽 170
6.4 微信iOS客戶端內(nèi)置瀏覽器適配 172
6.4.1 UIWebview和WKWebview介紹 172
6.4.2 內(nèi)核切換方法 172
6.4.3 內(nèi)核識別方法 173
6.4.4 微信內(nèi)置瀏覽器內(nèi)核判斷 174
6.4.5 適配注意事項 175
6. 5 本章小結(jié) 175
第7章 微信JS-SDK 176
7.1 微信JS-SDK簡介 177
7.2 微信Web開發(fā)者工具 178
7.3 JS-SDK的使用 180
7.3.1 JS接口安全域名 180
7.3.2 微信客戶端版本要求 181
7.4 在SAE上使用JS-SDK 181
7.5 微信網(wǎng)頁開發(fā)樣式庫 185
7.6 本章小結(jié) 186
第8章 餐廳管家 187
8.1 功能設(shè)計 188
8.1.1 需求分析 188
8.1.2 功能演示 189
8.1.3 注意事項 191
8.2 “餐廳管家”的實現(xiàn)一:創(chuàng)建自定義菜單 191
8.2.1 自定義菜單 192
8.2.2 數(shù)據(jù)庫操作類封裝 193
8.2.3 微信消息接口 206
8.3 “餐廳管家”的實現(xiàn)二:預(yù)約管理 215
8.3.1 數(shù)據(jù)表設(shè)計 215
8.3.2 流程設(shè)計 216
8.3.3 網(wǎng)頁與樣式 217
8.3.4 預(yù)約頁面 218
8.3.5 我的預(yù)約頁面 222
8.4 “餐廳管家”的實現(xiàn)三:菜單管理 223
8.4.1 數(shù)據(jù)表設(shè)計 223
8.4.2 菜單展示頁面 224
8.4.3 菜單管理后臺 226
8.5 “餐廳管家”的實現(xiàn)四:優(yōu)惠券二維碼 226
8.5.1 數(shù)據(jù)庫設(shè)計 226
8.5.2 生成二維碼優(yōu)惠券 227
8.5.3 優(yōu)惠券列表 230
8.5.4 使用優(yōu)惠券 233
8.5.5 利用WebSocket實現(xiàn)信息推送 237
8.6 “餐廳管家”的實現(xiàn)五:路線導(dǎo)航 239
8.6.1 騰訊地圖API 239
8.6.2 數(shù)據(jù)庫設(shè)計 240
8.6.3 添加飯店位置 241
8.6.4 獲取用戶位置 244
8.6.5 路徑選擇算法 245
8.7 本章小結(jié) 252
第9章 微商城 253
9.1 抽獎系統(tǒng) 254
9.1.1 前端展示 254
9.1.2 抽獎動畫 254
9.1.3 中獎概率 255
9.1.4 抽獎控制邏輯 256
9.1.5 數(shù)據(jù)表設(shè)計 257
9.1.6 代碼實現(xiàn) 258
9.2 微信支付 263
9.2.1 微信支付介紹 263
9.2.2 JS API支付 264
9.2.3 安全支付 269
9.2.4 訂單查詢 272
9.3 微信小店 274
9.3.1 認(rèn)識微信小店 274
9.3.2 開店五步 275
9.4 多客服功能 278
9.4.1 服務(wù)開通 278
9.4.2 添加客服工號 279
9.4.3 在電腦上使用多客服 280
9.4.4 在微信上使用多客服 280
9.5 本章小結(jié) 281
第10章 微酒店 282
10.1 微酒店功能及設(shè)計 283
10.1.1 功能 283
10.1.2 數(shù)據(jù)庫設(shè)計 283
10.2 功能實現(xiàn) 284
10.2.1 自定義菜單 284
10.2.2 消息處理 286
10.2.3 位置消息 287
10.2.4 附近酒店 288
10.2.5 預(yù)訂酒店頁面 291
10.2.6 用戶注冊頁面 295
10.2.7 添加訂單頁面 297
10.2.8 我的訂單頁面 300
10.2.9 退訂 303
10.2.10 訂單后臺管理 304
10.2.11 我的會員卡 307
10.3 本章小結(jié) 308
第11章 游戲開發(fā):誰是臥底 309
11.1 誰是臥底功能及設(shè)計 310
11.1.1 游戲規(guī)則 310
11.1.2 核心流程 310
11.1.3 數(shù)據(jù)表設(shè)計 310
11.2 代碼實現(xiàn) 311
11.2.1 消息判斷 311
11.2.2 創(chuàng)建游戲 313
11.2.3 創(chuàng)建房間 314
11.2.4 換詞 317
11.2.5 改詞 318
11.2.6 加入房間 318
11.2.7 后臺操作 319
11.3 效果展示 320
11.4 本章小結(jié) 321
第12章 HTML 5小游戲開發(fā) 322
12.1 一秒鐘有多長 323
12.1.1 界面與樣式 323
12.1.2 Zepto實現(xiàn) 325
12.1.3 Vue.js實現(xiàn) 327
12.2 測測你是三國殺中的誰——測試類游戲通用解決方案 332
12.2.1 JSON介紹 332
12.2.2 問題和答案的數(shù)據(jù)結(jié)構(gòu) 333
12.2.3 代碼解析 334
12.3 本章小結(jié) 337
第13章 微信與O2O 338
13.1 微信小店 339
13.1.1 小店功能 339
13.1.2 開發(fā)接口 341
13.2 微信搖一搖周邊 342
13.3 微信連Wi-Fi 343
13.4 微信掃一掃 348
13.5 本章小結(jié) 349
第14章 公眾號與小程序 350
14.1 小程序介紹 351
14.1.1 小程序是什么 351
14.1.2 小程序的開放能力 351
14.1.3 小程序的前世今生 351
14.2 《一秒鐘有多長》小游戲 352
14.2.1 游戲規(guī)則 352
14.2.2 下載與運(yùn)行 353
14.2.3 界面、樣式與腳本 354
14.3 本章小結(jié) 356
第1章 微信公眾平臺簡介坐擁8億注冊月活躍用戶的微信已成為很多人裝機(jī)的必備軟件。人們發(fā)語音聊天,刷朋友圈,讀公眾賬號文章,過著離不開微信的日子。對廣大開發(fā)者有利的是,這個移動互聯(lián)網(wǎng)上的重要入口一開始就以開放姿態(tài)面世。微信提供了公眾平臺和開放平臺,分別供公眾賬號運(yùn)營者和移動應(yīng)用開發(fā)者使用。
再小的個體也有自己的品牌。無論是企業(yè)、組織,還是媒體、個人,微信公眾平臺都可以以輕應(yīng)用的形式提供服務(wù)。公眾平臺的編輯模式使不會編程的用戶也能輕松使用,而開發(fā)模式和眾多的開放接口為開發(fā)者提供了廣闊的想象空間和難得的機(jī)遇。 本章重點(diǎn)介紹一下微信、微信公眾平臺及公眾賬號,希望讀者在投入微信公眾平臺開發(fā)時,對微信公眾平臺能做什么、鼓勵做什么有一定的認(rèn)識,避免在開發(fā)中走彎路。 1.1 微信:連接一切不止一種技術(shù)幻想過這樣的場景:快下班時對空調(diào)說“溫度降到27度”,對熱水器說“燒熱水要洗澡”。企業(yè)以智能家居為物聯(lián)網(wǎng)技術(shù)的突破口,已經(jīng)使這樣的場景變?yōu)榱爽F(xiàn)實。微信不止可以連接人,還可以連接能上網(wǎng)的機(jī)器。每個機(jī)器都有二維碼作為設(shè)備ID,在微信里可以通過和設(shè)備對話來控制設(shè)備。微信作為連接者,已經(jīng)成為最有價值的、用戶與用戶最滿意的產(chǎn)品之間的橋梁。 1.1.1 物聯(lián)網(wǎng)微信有兩大逆天功能:搖一搖和掃一掃。前者曾創(chuàng)造了“點(diǎn)亮廣州塔”的輝煌事跡,后者則培養(yǎng)了用戶見黑白方塊就掃的習(xí)慣。見到下面印有二維碼的奶牛(見圖1-1),讀者是不是有掃一掃的沖動呢? 圖1-1真的能掃!你會發(fā)現(xiàn)打開了網(wǎng)頁,上面這樣介紹這頭奶牛:名字:Shamrock品種:黑白花乳牛每天產(chǎn)30~40升牛奶。 夏天到野外吃新鮮青草,冬天青草不再生長時,改吃青貯飼料。 需要平衡的飲食。 時常有農(nóng)業(yè)科學(xué)家來和農(nóng)場主討論青貯飼料和谷物的比例,并制定一系列計劃來保證它的健康。 這是一篇來自BBC的報道,農(nóng)場主給奶牛身上涂上二維碼來宣傳牧場。只要掃一下奶牛身上的二維碼,即可知道這頭奶牛的所有資料。 奶牛二維碼的內(nèi)容是一個短鏈接:http://goo.gl/yAE1Q,完整URL為:http://www.thisisdairyfarming.com/news-press/in-the-news/lady-shamrock/不能掃一掃的讀者可以訪問此鏈接。 這在技術(shù)上并不神奇,生成二維碼和掃描二維碼都是業(yè)界成熟的技術(shù)。但利用微信“掃一掃”連接奶牛(物理世界)和互聯(lián)網(wǎng)(信息世界),或者用微信控制家用電器,這種人與物、物與物之間的連接正是物聯(lián)網(wǎng)的基礎(chǔ)。 1.1.2 二維碼革命奶牛身上印有二維碼,掃描后顯示鏈接(文字),再跳轉(zhuǎn)到相應(yīng)的網(wǎng)頁。這說明二維碼是一種編碼方式,這里介紹一下二維碼及其前景。 1. 什么是二維碼二維碼英文為Quick Response Code,簡寫為QR Code。通俗地講,二維碼是二維的條形碼,可以在水平和豎直方向同時存儲信息。生成的二維碼圖形一般為正方形,根據(jù)特定的編碼方式,在平面(二維方向)上繪制黑白相間的圖形,如微信公眾平臺的二維碼。 大家是否見過圖1-2所示的兩張火車樣票? 圖1-2我相信大多數(shù)讀者都見過右邊的藍(lán)票,左邊的紅票為軟紙票,是1997年確定的車票統(tǒng)一樣式。2009年12月,鐵路部門對火車票進(jìn)行升級改版,并在2010年春運(yùn)前推出磁卡票(藍(lán)票)。 藍(lán)票與紅票最明顯的變化是車票下方的條形碼變成了二維碼。
你還可能感興趣
我要評論
|