發表於2024-11-23
騰訊公司資深軟件研發工程師兼微信公眾平颱應用開發先驅者撰寫,第一版廣獲好評。
根據微信新版本全新升級,新增內容超過40%,詳細講解所有基礎接口、9大高級接口以及公眾平颱的各種高級功能,逐步講解微信公眾平颱開發的流程、方法和技巧。
通過3個案例呈現娛樂型、應用型、遊戲型應用的完整開發過程,包含一個快速開發公眾平颱應用的可復用框架。
《微信公眾平颱應用開發實戰(第2版)》的第1版上市後廣獲好評,成為計算機領域的熱銷書,被譽為“微信公眾平颱開發領域好的書之一”,作者是來自騰訊官方的資深軟件開發工程師,而且是微信公眾平颱應用開發領域的先驅者之一。第2版根據微信的全新版本做瞭全麵升級,新增內容超過40%,同時對其他內容做瞭更新。內容全麵,介紹瞭微信公眾平颱應用開發所需各項技術,詳細講解瞭所有基礎接口、9大高級接口以及公眾平颱的各種高級功能,演示和總結瞭微信公眾平颱開發的流程、方法和技巧;實戰性強,不僅通過3個案例呈現瞭娛樂型、應用型、遊戲型應用的完整開發過程,而且還實現瞭一個快速開發公眾平颱應用的框架,讀者可以直接用於快速開發自己的公眾平颱應用。此外,還從如何應對海量用戶請求和用戶的惡意請求的角度探討瞭公眾賬號運營所涉及的技術難題。
鍾誌勇,騰訊資深軟件研發工程師,畢業於中科院計算所,微信公眾平颱應用開發先驅,有多款應用開發經驗。在騰訊(深圳)雲平颱部工作,擔任後颱開發工程師,參與過騰訊QCLOUD的研發。精通PHP和Linux網絡編程技術,實踐經驗豐富。
前言
第1章 微信公眾平颱介紹 / 1
1.1 微信公眾賬號的注冊 / 2
1.1.1 基本信息 / 3
1.1.2 郵箱激活 / 3
1.1.3 信息登記 / 5
1.1.4 完善公眾賬號信息 / 10
1.2 微信公眾賬號的認證 / 10
1.3 編輯模式 / 13
1.3.1 自動迴復 / 13
1.3.2 自定義菜單 / 18
1.4 開發模式簡介 / 21
1.5 小結 / 23
第2章 使用雲平颱快速搭建公眾賬號 / 24
2.1 開啓公眾賬號開發模式 / 24
2.2 使用新浪SAE搭建公眾賬號 / 25
2.2.1 注冊新浪SAE / 25
2.2.2 在新浪SAE上創建App / 27
2.2.3 部署代碼 / 29
2.2.4 開發接口的認證 / 29
2.2.5 實現簡單的迴復 / 31
2.3 使用百度BAE搭建公眾賬號 / 33
2.3.1 注冊百度BAE / 33
2.3.2 在百度BAE上創建App / 35
2.3.3 部署代碼 / 37
2.3.4 開發者接口的認證 / 39
2.3.5 實現簡單的迴復 / 41
2.3.6 BAE代碼下載 / 42
2.4 在PC端進行開發調試 / 43
2.5 小結 / 44
第3章 微信公眾平颱API詳解:基礎接口 / 45
3.1 Token驗證 / 45
3.2 接收消息 / 46
3.2.1 文本消息 / 46
3.2.2 圖片消息 / 51
3.2.3 地理消息 / 53
3.2.4 語音消息 / 56
3.2.5 視頻消息 / 57
3.2.6 鏈接消息 / 59
3.2.7 事件消息 / 61
3.3 迴復消息 / 62
3.3.1 文本消息 / 62
3.3.2 圖片消息 / 64
3.3.3 語音消息 / 66
3.3.4 音樂消息 / 67
3.3.5 視頻消息 / 69
3.3.6 圖文消息 / 71
3.4 小結 / 75
第4章 微信公眾平颱API詳解:高級開發 / 76
4.1 會話界麵自定義菜單 / 76
4.1.1 獲取access_token憑證 / 76
4.1.2 自定義菜單創建 / 78
4.1.3 自定義菜單事件 / 82
4.1.4 自定義菜單獲取 / 84
4.1.5 自定義菜單刪除 / 85
4.1.6 各接口的調用頻次限製 / 85
4.2 語音識彆開發 / 86
4.3 自動獲取用戶地理位置信息 / 88
4.4 用戶管理 / 91
4.4.1 查詢分組 / 91
4.4.2 創建分組 / 93
4.4.3 修改分組名 / 94
4.4.4 獲取關注者列錶 / 95
4.4.5 獲取用戶基本信息 / 96
4.4.6 移動用戶分組 / 97
4.5 上傳/下載多媒體文件 / 98
4.5.1 上傳多媒體文件 / 98
4.5.2 下載多媒體文件 / 100
4.6 客服接口 / 101
4.6.1 推送文本消息 / 101
4.6.2 推送圖片消息 / 102
4.6.3 推送語音消息 / 104
4.6.4 推送視頻消息 / 105
4.6.5 推送音樂消息 / 107
4.6.6 推送圖文消息 / 109
4.7 二維碼開發 / 111
4.7.1 創建二維碼ticket / 111
4.7.2 通過ticket換取二維碼 / 112
4.7.3 掃描帶參數二維碼事件 / 114
4.8 網頁授權獲取用戶的基本信息(OAuth2.0) / 117
4.8.1 設置授權迴調域名 / 117
4.8.2 微信用戶同意授權並獲取code / 119
4.8.3 通過code換取網頁授權access_token / 121
4.8.4 刷新access_token / 123
4.8.5 拉取用戶信息 / 125
4.8.6 完整的示例代碼 / 126
4.9 wechat的JS開發 / 129
4.9.1 隱藏/顯示微信中網頁右上角按鈕 / 129
4.9.2 隱藏/顯示微信中網頁底部導航欄 / 130
4.9.3 網頁獲取網絡狀態判斷 / 131
4.9.4 網頁內容分享開發 / 132
4.9.5 完整的示例代碼 / 136
4.10 小結 / 138
第5章 搭建開發環境和相關技術介紹 / 139
5.1 AppServ的安裝與配置 / 139
5.2 zendstudio的安裝與配置 / 144
5.3 相關技術介紹 / 147
5.3.1 PHP / 147
5.3.2 HTTP / 158
5.3.3 XML / 162
5.3.4 MySQL / 163
5.3.5 HTML 5 / 166
5.4 小結 / 169
第6章 開發你的第一個應用——echo server / 170
6.1 實現網址接入 / 170
6.2 解析用戶輸入並組裝返迴 / 173
6.3 錯誤處理 / 175
6.4 封裝代碼 / 177
6.4.1 日誌封裝 / 178
6.4.2 一個簡單的框架 / 182
6.4.3 數據庫訪問封裝 / 187
6.5 小結 / 200
第7章 帶自定義菜單的echo server / 201
7.1 在編輯模式中使用自定義菜單 / 201
7.2 使用CURL發送HTTP請求 / 204
7.2.1 使用CURL發送請求的基本流程 / 204
7.2.2 獲取CURL請求的輸齣信息 / 205
7.2.3 使用CURL發送GET請求 / 206
7.2.4 使用CURL發送POST請求 / 207
7.2.5 使用CURL上傳文件 / 208
7.3 獲取access_token / 210
7.4 自定義菜單的操作 / 212
7.5 帶自定義菜單的echo server / 219
7.6 小結 / 222
第8章 實戰案例1:娛樂性圖片應用——“每日十幅圖” / 223
8.1 需求和交互描述 / 223
8.2 技術方案 / 226
8.2.1 為什麼使用問號 / 226
8.2.2 為什麼使用圖文消息 / 226
8.2.3 錶設計 / 226
8.2.4 批量重命名 / 227
8.3 代碼實現 / 228
8.3.1 常量定義 / 228
8.3.2 成員變量和初始化 / 229
8.3.3 主業務邏輯 / 230
8.3.4 總代碼清單 / 235
8.4 小結 / 239
第9章 實戰案例2:人臉識彆應用——findface / 240
9.1 需求和交互描述 / 240
9.2 人臉識彆基本概念 / 241
9.3 人臉識彆OPENAPI / 242
9.4 數據庫錶設計 / 243
9.5 後颱邏輯設計 / 244
9.6 代碼實現 / 246
9.6.1 配置定義部分 / 246
9.6.2 Face++接口封裝部分 / 247
9.6.3 Group的創建和訓練 / 249
9.6.4 findface主邏輯 / 250
9.7 把照片保存到本地 / 252
9.8 小結 / 255
第10章 實戰案例3:趣味遊戲——命運左輪 / 256
10.1 遊戲過程 / 256
10.2 數據錶設計 / 258
10.3 自定菜單設計 / 260
10.4 具體代碼實現 / 262
10.4.1 AbstractInterface.php / 265
10.4.2 WeChatCallBackMYZL.php / 268
10.4.3 Ready.php / 273
10.4.4 Start.php / 275
10.4.5 ChipIn.php / 278
10.4.6 PutMagic.php / 283
10.4.7 Shoot.php / 289
10.4.8 GetOp.php / 296
10.4.9 AddUser.php / 298
10.4.10 Matcher.php / 300
10.5 運行截圖 / 301
10.6 小結 / 301
第11章 海量請求的應對方法 / 302
11.1 影響公眾賬號的響應速度的因素 / 302
11.1.1 網絡時延 / 302
11.1.2 請求處理時間 / 303
11.2 使用高性能的Web組件 / 303
11.2.1 安裝 / 304
11.2.2 配置和運行 / 304
11.2.3 ab測試 / 308
11.3 監控服務器的各項指標 / 310
11.3.1 top命令 / 311
11.3.2 vmstat和sar命令 / 312
11.3.3 netstat命令 / 313
11.3.4 Nmon監控 / 313
11.4 使用緩存係統 / 314
11.4.1 Redis簡介 / 314
11.4.2 Redis的使用和性能對比 / 315
11.5 數據庫的備份和擴展 / 320
11.5.1 主從復製和讀寫分離 / 320
11.5.2 數據庫的垂直劃分和水平劃分 / 322
11.6 接入層反嚮代理 / 325
11.7 小結 / 328
第12章 惡意請求的應對方法 / 329
12.1 URL訪問限製 / 329
12.2 防止SQL注入 / 332
12.3 用戶輸入導緻XML格式錯誤 / 335
12.4 PHP安全 / 337
12.5 DDOS簡介 / 339
12.5.1 SYN flood / 339
12.5.2 應用層DDOS / 340
12.5.3 ReDOS / 341
12.6 小結 / 344
附錄A 返迴碼說明 / 345
第1章
微信公眾平颱介紹
最近這段時間,在任何時候打開任意一個IT媒體,都能在顯著位置看到關於微信公眾平颱的文章,無論是稍有曆史的CSDN、51CTO和ITEYE,還是新興的36Kr、雷鋒網、虎嗅和鈦媒體等。這些媒體都第一時間在微信上注冊瞭公眾賬號進行新聞推送,相信不少讀者也關注瞭一些。不管這些關於微信公眾平颱的文章是軟文還是“小編”或網友所寫的文章,可以肯定的一點是,微信公眾平颱是非常引人關注的。相信很多人都想基於公眾平颱做一些事情,都呈躍躍欲試狀。但是當你閱讀這些文章,希望從中學到一些自己需要的知識時卻會發現,其中大部分都是談前途、談看法,有實際指導性意義的非常少。這也不能怪這些文章的作者,因為他們自己應該也不太清楚要怎麼做。新事物齣現的時候人們總是這種狀態,覺得前途一片光明,但是大部分人不知道從哪裏走齣第一步。在筆者看來,作為開發者,擁抱變化,並寫下關於新事物的第一行代碼就是我們的第一步。本章是為寫下第一行代碼做的準備工作。
2013年10月24日,微信的注冊用戶突破6億,日活躍用戶1億。這距離微信發布第一個版本的2011年1月21日僅有不到2年的時間。海量的用戶蘊藏著巨大的營銷和推廣價值。2012年8月17日,微信推齣瞭公眾平颱,為個人和企業帶來瞭一個新的機會。通過這一平颱,個人和企業都可以打造一個微信公眾賬號,並實現和特定群體的文字、圖片、語音的全方位溝通、互動。
和企業微博相比,微信公眾賬號具有如下兩個重要特點:
微信公眾賬號更注重私密性。訂閱者和公眾賬號的交流是私密的,不像企業微博那樣,所有的粉絲都看得到你的評論和轉播。
微信公眾賬號更注重和訂閱者的交流,而企業微博更注重信息的傳播。
從公眾賬號和訂閱者交流方式的角度來看,微信公眾平颱有三大功能:
群發消息。公眾賬號每天可以嚮訂閱者群發一定量的消息。
使用編輯模式中的自定義迴復消息功能,公眾賬號可以自定義一些消息迴復規則。
使用開發模式,公眾賬號的維護者可以開發自己獨特的業務邏輯來分析訂閱者的消息,並反饋給訂閱者。這個功能給瞭公眾賬號最大的自由度,可以極大地擴展公眾賬號的能力。
結閤公眾平颱的特點和功能,公眾賬號可以有以下使用方法:
企業移動門戶。訂閱者可以通過企業賬號獲取最新的優惠和活動,例如“好樂迪KTV”、“百果園”、“海岸城”等公眾賬號都屬於這一類。
新聞資訊。微信自帶的“騰訊新聞”以及“雷鋒網”、“36Kr”等都屬於這一類。用戶訂閱這些賬號是為瞭看新聞。
娛樂。“糗事百科”、“百思不得姐”以及本書中將要介紹的“meiri10futu”賬號就屬於這一類。
社交應用。“校園愛情”、“錯過的他”屬於這一類,這類應用都還不太成熟,使用起來還不是很方便。主要原因是微信還沒有開放獲取用戶信息的API。本書中的“findface”是這類應用的一個嘗試。
遊戲。這類應用大多是發送一個鏈接給用戶,實際運行還是在瀏覽器中,沒有用到微信公眾平颱的特性。這種模式被認為是微信公眾平颱和HTML 5的結閤點。“愛屁屁”就是這種類型中的一個。非內嵌連接的遊戲還很少,本書中的“命運左輪”是非內嵌鏈接遊戲的一個嘗試。
也許大傢注意到瞭,這些賬號都很生活化。那些微博中人氣非常高的名人不在此列。這讓我想起瞭兩句非常有意思的話,可以形象地總結齣微博和微信的區彆:“微博一打開,看到一群公知在憂國憂民,感覺世界好黑暗。微信朋友圈一打開,看到一群朋友在吃喝玩樂,感覺世界好陽光。”也許讀者會發現自己平時遇到的一些賬號在這裏都沒有列齣來,這並不奇怪,因為公眾賬號的使用方式還在不斷探索之中。也許那個最有效,最受歡迎的公眾賬號會齣自你手,誰說得準呢?
本章是一個介紹性的章節,會覆蓋微信公眾賬號的注冊、認證,編輯模式中自動迴復和自定義菜單的使用。如果讀者已經瞭解瞭這些知識,可以直接跳過本章。
……
為什麼要寫這本書
截至本書完成時,微信已有超過6億的用戶,公眾平颱給瞭我們接觸這6億用戶的機會。公眾平颱對於我們來說是一個全新的平颱,任何人都可以在公眾平颱上注冊一個賬號並進行自己的探索,這意味著大傢的機會都是平等的。和大傢一樣,筆者也是眾多探索者中的一個。在本書的第1版完成時,公眾平颱隻開放瞭一些非常簡單的接口,給到開發者的自由度很有限。截至目前,公眾平颱不僅開放瞭9大高級接口,還開放瞭支付接口,可以支持到閉環的用戶體驗。
關於機會,唐駿在新書《重新齣發》中給齣瞭他的理解:“機會有三種,第一種是彆人給的,第二種是爭取的,第三種是運作齣來的。迂迴前進是運作機會的最佳方式之一,對於處在弱勢態勢下的人來說尤其有效。”也許讀者目前對公眾平颱一無所知,但現在開始並不晚,也許最好的那個公眾賬號就是你將來苦心經營的那個。
筆者是在2013年年初的時候第一次接觸到公眾平颱的,一番瞭解之後,對它的開發模式非常感興趣,於是自己開發瞭一些公眾賬號,包括本書中將會介紹的meiri10futu、findface和mingyunzuolun。在開發和運營這些賬號的過程中記錄瞭遇到的問題和相應的處理方法,本書其實是把筆者的開發過程展現給讀者,希望讀者能夠從中得一些幫助,同時也希望通過本書認識更多的同樣對公眾平颱開發感興趣的人。
讀者對象
對微信公眾平颱感興趣的人;
有程序開發經驗,想嘗試微信公眾平颱開發的人;
沒有程序開發經驗,想入門微信公眾平颱開發的人,本書的第1~2 章是專門為這類讀者準備的;
想通過開發一些實際應用提升自己開發能力的人,本書用到的知識都是開發互聯網應用通用的;
已經開發瞭自己的公眾賬號,想進一步提升的人。
如何閱讀本書
本書分為四大部分:
第一部分為第1~2章,介紹瞭微信公眾平颱的一些基本概念和操作方法,並通過BAE和SAE,介紹如何通過雲平颱使用公眾賬號的開發模式。這一部分相對簡單,可以照顧到開發基礎薄弱的初學者。
第二部分為第3~7章,著重講解瞭公眾平颱的基礎接口、高級接口以及開發中需要用到的技術(HTTP、PHP、XML和SQL等),幫助讀者瞭解一些基礎的背景知識。然後使用接口和相關技術實現一個入門的echo server賬號。在這部分,筆者還進一步實現瞭一套快速開發公眾賬號的框架,讀者使用這個框架可以快速實現自己的公眾賬號。
第三部分為第8~10章,依次嚮讀者展示瞭三個公眾賬號(meiri10futu、findface和mingyunzuolun)的開發過程,這三個公眾賬號分彆屬於娛樂型、應用型和遊戲型。掌握這部分知識之後,讀者可以獨立實現一個有復雜邏輯的公眾賬號。
第四部分為第11~12章,介紹瞭如何處理海量訂閱和用戶消息、如何防禦惡意攻擊。這部分意在提高讀者多方麵的能力,這部分內容是運營互聯網應用需要重點關注的。這部分給齣瞭一些實用的方法,掌握這些方法,讀者將有能力獨自運營一個有相當訂閱數量的公眾賬號。
如果讀者是公眾賬號開發的新手,建議從第一部分開始閱讀,如果讀者開發過一些公眾賬號,可以直接選擇自己感興趣的章節閱讀。
第2版和第1版的比較
第2版不但新增瞭微信公眾平颱9大高級接口的詳細介紹和示例代碼,而且增加瞭基本接口的示例代碼(這部分放在瞭第3章和第4章)。另外,一些第1版的讀者反映,對代碼理解有睏難,開發上手有難度,為瞭照顧到這部分讀者,盡量使沒有程序開發經驗的讀者也可以享受開發公眾賬號的樂趣,筆者特意新增瞭對微信公眾平颱開發模式基本概念的介紹和如何使用BAE
微信公眾平颱應用開發實戰(第2版) 下載 mobi epub pdf txt 電子書 格式
微信公眾平颱應用開發實戰(第2版) 下載 mobi pdf epub txt 電子書 格式 2024
微信公眾平颱應用開發實戰(第2版) 下載 mobi epub pdf 電子書不錯,很實用,適閤初學者
評分學習一下最近要用到微信開發
評分真心爛,學不到什麼,就湊瞭湊文檔,貼瞭些PHP代碼,基本沒用。
評分距離拉開瞭啦啦巴巴爸爸啊
評分好,正版,淺顯易懂,適閤初學者。
評分不知道你們這書是怎麼存倉庫的,外麵包裝看著很不錯,一打開裏麵全是灰塵,無語……
評分就是喜歡你,喔耶耶耶耶耶,很推薦
評分在讀ing~讀完後再追評吧~
評分很好
微信公眾平颱應用開發實戰(第2版) mobi epub pdf txt 電子書 格式下載 2024