【編者按】由CSDN和《程序員》雜志聯合主辦的 2014年微信開發者大會 將于8月23日在北京舉行,邀請了來自于一線的微信開發商技術負責人或資深工程師從企業應用開發高級篇、智能客服與LBS、微信支付、微信上的HTML5社交應用、微信小店開發等角度為與會者帶來實戰分享( 議程 )。目前報名處于優惠票價階段,通過申請加入CSDN CTO俱樂部即可享受8折購票價格(票款中均含午餐),在8月1日前完成付款的同學還將免費獲贈微信開發圖書一本(兩選一,活動現場發放)。
值得一提的是,CSDN優秀博主、暢銷書《微信公眾平臺應用開發:方法、技巧與案例》的作者柳峰受邀做本次活動講師之一,演講主題《智能客服與LBS開發的“坑”與解決之道》。他在CSDN博客中( 查看)撰寫了幾十篇+的微信開發技術文章,多篇訪問量都在3萬+,以下這篇《 微信公眾平臺開發教程新手解惑40則》摘自他的博客。
全文如下:
筆者在CSDN博客頻道推出微信公眾平臺開發教程之后,接觸了許多公眾平臺開發愛好者,也幫助他們解決了許多實際的問題,當然這其中有很多問題都是重復的,因此,筆者將這些問題及解答整理出來,以幫助更多初學者少走彎路。
1、訂閱號與服務號的主要區別是什么?
訂閱號每天能群發一條消息,沒有自定義菜單及高級接口權限;服務號有自定義菜單及高級接口權限,但每月只能群發一條消息。
2、到底該申請訂閱號還是服務號?
申請哪種類型的公眾賬號,主要取決于賬號的用途。服務號主要面向企業和組織,旨在為用戶提供服務;訂閱號主要面向媒體和個人,旨在為用戶提供信息和資訊。
3、訂閱號是否支持編程開發?
不管是訂閱號,還是服務號,在高級功能中都有編輯模式和開發模式,訂閱號也支持編程開發,同樣也能與企業系統對接。
4、為什么申請的公眾賬號沒有高級功能?
公眾賬號注冊后,要經過微信團隊的審核,在審核未完成之前不顯示高級功能。一般審核會在15個工作日內完成,如果一兩周沒審核通過均屬正常現象,還請耐心等待。
5、現在訂閱號能否申請自定義菜單?
不能。那為什么有些訂閱號有自定義菜單?這是歷史遺留問題。2013年8月5日,隨著微信5.0的發布,公眾賬號被劃分為訂閱號和服務號,所有的公眾賬號都被默認為訂閱號,并且有一次轉服務號的機會,許多在此之前申請到自定義菜單的賬號并沒有轉為服務號,所以就存在一些訂閱號有自定義菜單,例如:36氪、蓉城先鋒、天府之光等。
補充:2013年12月24日,公眾平臺針對訂閱號做了重要更新。政府、傳統媒體、明星等非企業性質的訂閱號可以申請微信認證,通過微信認證的訂閱號可獲得自定義菜單接口權限。
6、現在申請的訂閱號能否轉服務號?
不能。只有2013年8月5日微信5.0發布以前申請的訂閱號才有一次轉服務號的機會,在此之后申請的訂閱號不能轉服務號。
那如果真的有轉服務號的需求怎么解決?只能重新申請一個服務號。
7、目前一個身份證號能申請幾個公眾賬號?2個。
8、使用一個公司的材料能申請多少個公眾賬號?
沒有限制。
9、在注冊公眾賬號時,提示“你注冊的公眾號名稱存在侵權風險,請先完成微博驗證”,這是什么意思?
公眾平臺對一些可能存在侵權的關鍵詞進行了保護,例如:“微信”、“移動”、“搜狐”等,如果注冊的公眾賬號名稱中包含這類關鍵詞,提交時就會提示存在侵權風險。
遇到這種情況時,要么避開這些關鍵詞換個名稱注冊,要么就根據提示先完成微博驗證再繼續注冊。
10、個人能否申請服務號?
不能,個人只能申請訂閱號。服務號的運營主體必須為組織,例如:企業、政府、其他組織等。
11、公眾賬號的名稱可以重復嗎?
公眾賬號的名稱可以重復,不用擔心被他人搶注。
12、公眾賬號的名稱可以修改嗎?
公眾賬號名稱一經設置無法修改,公眾平臺沒有提供賬號改名的功能,因此在注冊賬號時取名應謹慎。
13、微信認證與微博認證有什么區別?
微信認證是針對于服務號,微博認證是針對于訂閱號。也就是說,訂閱號只能申請微博認證,服務號只能申請微信認證。
14、是否需要粉絲數達到500才能申請微信認證?
只要是服務號都可以申請微信認證,與粉絲數無關。只有訂閱號申請微博認證才要求粉絲數必須達到500。
15、編輯模式與開發模式能夠同時使用嗎?
不能,這兩種模式是互斥的,開啟編輯模式就必須關閉開發模式,開啟開發模式就必須關閉編輯模式。
16、現在用的是編輯模式,以后還可以選擇使用開發模式嗎?
可以,任何時候都可以根據需要切換到另外一種模式。
17、編輯模式切換到開發模式之后,在編輯模式中設置的內容還在嗎?還有效嗎?
在編輯模式中設置的內容,只要自己不手動刪除,會永遠存在的,但這些設置在開發模式下無效。
18、開發模式的菜單為什么突然消失了?
菜單不會無緣無故的消失,如果開發人員沒有手動刪除,那一定是有人開啟過編輯模式引起的。請注意:開啟編輯模式后,在開發模式下創建的菜單會被刪除。
19、使用開發模式需要具備哪些條件?
1)至少掌握一門編程語言;2)具備公網服務器資源。
20、微信公眾平臺支持哪些編程語言?應該如何選擇?
凡是支持動態Web開發的編程語言都能夠用于微信公眾平臺開發,例如:Java、PHP、ASP.NET、Ruby、Python、Note.js等。
開者人員應該選擇自己最擅長的編程語言進行開發,如果都不擅長怎么辦?如果都不擅長,建議選擇Java或PHP,原因在于網上關于微信公眾平臺開發的資料大都是基于Java和PHP的,開發起來要相對容易。
21、沒有公網服務器資源怎么辦?
1)免費:可以考慮使用云環境,例如,BAE(Baidu App Engine,百度應用引擎)和SAE(Sina App Engine,新浪應用引擎)。
2)付費:可以考慮租用VPS(Virtual Private Server,虛擬專用服務器)或阿里云的云服務器。
如果僅是為了學習微信公眾平臺開發,個人建議使用BAE。
22、如果想使用Java進行微信公眾平臺開發至少需要掌握哪些內容?
至少需要掌握Java基礎知識、JSP、Servlet、Javabean和JDBC(操作數據庫)。
23、公司的項目大都是基于SSH框架進行開發,能使用SSH開發微信公眾賬號嗎?
當然可以,前面說過,凡是支持動態Web開發的編程語言都能用于微信公眾平臺開發。其實,Struts本質上也是Servlet。24、柳峰老師,可以給我一份微信公眾平臺項目的源碼嗎?
想要源碼的朋友請您免開尊口,我認為這不是一種很好的學習方式和態度,而是一種浮躁的表現。博客中的教程已經講的很詳細了,并且貼出了所有代碼(一行也不少),如果這樣還不愿意花點時間去理解、消化和動動手,我也無能為力!
PS:曾經也有一些開發者、創業團隊和公司提出要買小q機器人(xiaoqrobot)的源碼,有的開價是5位數,但都被我拒絕了。相比之下,我更愿意把小q機器人的完整實現過程寫成一篇篇技術文章免費分享出來,帶動更多的開發者加入到微信公眾平臺開發陣營!
25、公眾賬號能夠通過程序主動向關注用戶發消息嗎?
截止目前,公眾平臺還沒有開放主動向用戶發消息的接口。為什么招行可以?我前面說的是沒有“開放”主動發消息的接口,并不代表沒有該接口。如果貴公司也有招行的實力,我相信你也有辦法申請到;如果沒有這樣的實力,那就不要費事了。
26、訂閱號使用開發模式能夠向用戶回復圖片、語音和視頻消息嗎?
可以,雖然訂閱號沒有多媒體文件上傳接口權限,無法通過上傳多媒體文件到微信服務器獲取MediaId,但仍可以變相得到MediaId,同樣可以實現回復多媒體消息。變相的實現方法是將用戶發送給公眾賬號的多媒體消息的MediaId記錄下來,給用戶回復多媒體消息時可以使用。
27、訂閱號使用開發模式能夠向用戶回復 音樂消息嗎?
可以。
28、音樂消息包含參數ThumbMediaId,沒有高級接口權限的公眾賬號無法獲得ThumbMediaId,怎么回復音樂消息?
ThumbMediaId不是音樂消息的必須參數,給用戶回復音樂消息時可以不傳ThumbMediaId參數,類似下面這種示例格式也能正確回復音樂消息:
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType><![CDATA[music]]></MsgType> <Music> <Title><![CDATA[TITLE]]></Title> <Description><![CDATA[DESCRIPTION]]></Description> <MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl> <HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl> </Music> </xml>
29、訂閱號與非微信認證的服務號能夠向回復哪些類型的消息?
在開發模式下,訂閱號與非微信認證的服務號只能向用戶回復文本消息、音樂消息和圖文消息。
30、為什么項目代碼與柳峰老師教程中的一樣,發消息給公眾賬號卻沒有任何響應?
這是我寫微信公眾平臺開發教程以來,初學者給我反饋最多的問題。可以肯定的是,至今為止,我博客中貼出的所有代碼全部都能正常運行,沒有任何問題。遇到上面這種問題大都是由以下三種情況引起:
1)在公眾平臺開發模式下,成為開發者卻忘記開啟開發模式,即開發模式的開關是關閉狀態。
2)通過上傳WAR包的方式部署應用時,導出的WAR包中沒有包含JAR。建議初學者直接將項目需要的JAR拷貝到項目中,這樣通過開發工具導出的WAR包就會包含JAR。
3)項目中引入的第三方JAR包與筆者教程中使用的JAR包版本不一致。
31、為什么自定義菜單創建成功了,在微信客戶端的公眾賬號上卻不顯示?
由于微信客戶端緩存的原因,自定義菜單創建成功后,需要24小時以后才能顯示出來。開發者在測試時,可以嘗試取消關注公眾賬號后再次關注,這樣能立即看到最新的菜單效果。
PS:菜單更新、菜單刪除也會有緩存。
32、如果要更新公眾賬號的自定義菜單,需要先將原有菜單刪除嗎?
不需要,直接執行菜單創建方法即可,每次創建菜單會自動覆蓋以前的菜單。
33、什么是微網站?
微網站是新瓶裝老酒,被一些搞營銷的人給神化了,以至于很多開發者都在問什么是微網站,如何開發微網站。微網站本質上就是以微信瀏覽器為入口的手機網站(Web APP),能夠兼容Android、iOS、WP等操作系統。開發微網站用到的技術與開發普通網站一樣,都是基于HTML(HTML5)、CSS、Javascript等,所以有普通網站開發經驗的開發者,完全有能力開發微網站。
PS:初學者以后再看到什么以“微”開頭的新名詞,例如:微商城、微客服、微統計,直接把“微”字去掉或者把“微”當作是“基于微信的”就不難理解了。
34、什么是模擬登錄?模擬登錄微信公眾平臺 能夠干什么?
模擬登錄指的是通過程序模擬用戶在瀏覽器上的操作。例如,我們通過瀏覽器訪問微信公眾平臺,先要登錄,登錄成功后能夠查看用戶信息、給用戶回復消息、群發消息等,其實通過程序也能夠實現這些操作。
PS:對于模擬登錄,官方并沒有明確表態是允許還是禁止,請謹慎使用,萬一哪天被封號就不劃算了,也沒法向關注你公眾賬號的用戶交待。
35、微信認證是如何收費的?
服務號申請微信認證需要支付300元/次的審核服務費用,無論最終的認證審核通過與否,都需要支付這筆費用。微信認證成功后,認證的有效期是一年,在有效期快結束時還要再次申請微信認證。
36、微信支付如何申請?
截止目前,微信公眾平臺仍未開放微信支付權限的申請。為什么廣東聯通、小米手機這些賬號有微信支付權限?這些公司大都與微信有著合作關系,提前享受這些權限一點也不奇怪。
37、臨時帶參二維碼有哪些應用場景?
通過微信掃描二維碼登錄微信網頁版,就是臨時帶參二維碼的典型應用場景。
38、微信公眾平臺開發一般如何調試?
微信公眾平臺提供的 在線接口調試工具旨在幫助開發者檢測調用公眾平臺接口時傳入的參數是否正確,這款工具對開發者的幫助其實并不大。對于調試本地運行的公眾賬號后臺程序,這里給讀者推薦兩種方法:
1)使用“微信開發調試小工具”,該工具支持在本地調試,工具的用法及下載請訪問: http://www.cnblogs.com/linkbiz/。2)使用 花生殼動態域名解析軟件,通過路由器端口映射,可以將自己的電腦變成一臺外網服務器,這樣本機運行的公眾賬號后臺程序就能直接與微信服務器進行交互了。
39、為什么項目在本地運行正常,也能獲取到數據,部署到服務器上之后公眾賬號沒有任何響應?
遇到這類情況,請讀者嘗試從以下幾個方面排查問題:
1)檢查項目在服務器上是否部署成功,可以嘗試方法以前能夠正常運行的功能模塊,看能否正確響應,以便縮小問題范圍。
2)檢查項目中通過URL傳遞參數時,如果傳遞特殊字符(例如:中文、+、&等),是否對特殊字符進行了編碼。
3)檢查程序的處理是否超時,如果超過5秒,公眾賬號不響應。
4)檢查返回的文本消息、圖文消息是否超過限制(文本消息長度<=2048字節,圖文消息條數<=10條),若超過限制,公眾賬號不響應。
5)公眾賬號不響應也有可能是微信公眾平臺自身故障導致。
40、為什么URL在瀏覽器能訪問,放到微信上卻不能訪問?
請檢查URL中是否包含特殊字符,例如:中文、+、&等,PC上的瀏覽器通常都會對URL中包含的特殊字符自動編碼,但有些瀏覽器不會。 為了保證所有的瀏覽器都能正常訪問URL,請務必對URL中包含特殊字符顯示編碼,顯示編碼的意思是代碼中能夠明確看出編碼方式是UTF8、GB2312或者其它。例如像下面這樣:
// 采用操作系統默認的字符集進行編碼,在不同的操作系統上表現不一致,不推薦 java.net.URLEncoder.encode(chinese);
// 顯示編碼,推薦用法 java.net.URLEncoder.encode(chinese, "UTF-8");
送給初學者一條中肯的建議:不要總是懷疑微信公眾平臺的接口或者有經驗的開發者分享的程序代碼有問題,最先應該懷疑自己寫的程序有問題,這樣才有助于發現問題,從而解決問題。請相信:一套久經考驗的平臺、程序被初學者發現BUG的情況并不多見。
歡迎大家到現場與柳峰深度溝通。目前, 2014微信開發者大會首批講師和議程已經出爐(持續關注 官網更新)。另外,主委會還開設了 講師和話題公開征集平臺,歡迎技術精英自薦和互相推薦,也可以直接聯系 @CSDN付江 @CSDN陳秋歌 。
2014微信開發者大會議程(持續更新)
此外,主辦方還特別開設了 “微信公眾平臺優秀開發商”征集評選活動( 更多詳情)現在就去 投票。微信開發者QQ群:375106712(已滿)和微信開發者② QQ群:369742525,歡迎加入交流。
相關閱讀: