微信開(kāi)發(fā)(一)

微信開(kāi)發(fā)

服務(wù)號(hào)功能

1、1個(gè)月(自然月)內(nèi)僅可以發(fā)送4條群發(fā)消息。
2、發(fā)給訂閱用戶(粉絲)的消息,會(huì)顯示在對(duì)方的聊天列表中。相對(duì)應(yīng)微信的首頁(yè)。
3、服務(wù)號(hào)會(huì)在訂閱用戶(粉絲)的通訊錄中。通訊錄中有一個(gè)服務(wù)號(hào)的文件夾,點(diǎn)開(kāi)可以查看所有服務(wù)號(hào)。
4、服務(wù)號(hào)可申請(qǐng)自定義菜單。

訂閱號(hào)功能

1、每天(24小時(shí)內(nèi))可以發(fā)送1條群發(fā)消息。
2、發(fā)給訂閱用戶(粉絲)的消息,將會(huì)顯示在對(duì)方的“訂閱號(hào)”文件夾中。點(diǎn)擊兩次才可以打開(kāi)。
3、在訂閱用戶(粉絲)的通訊錄中,訂閱號(hào)將被放入訂閱號(hào)文件夾中。
備注:在微信4.5版本之前申請(qǐng)的訂閱號(hào)可以有一次機(jī)會(huì)升級(jí)到服務(wù)號(hào),新注冊(cè)的微信公眾平臺(tái)賬號(hào)在注冊(cè)到第四步的時(shí)候有一個(gè)選擇類型讓你選擇訂閱號(hào)或者服務(wù)號(hào),這個(gè)一旦選擇就不可以改變了,一定要確定好,作為企業(yè)推薦選擇服務(wù)號(hào),因?yàn)楹笃趯?duì)服務(wù)號(hào)騰訊會(huì)有一些高級(jí)接口開(kāi)放,企業(yè)可以更好的利用公眾平臺(tái)服務(wù)你的客戶。如:指尖上的生活
個(gè)人申請(qǐng),只能申請(qǐng)訂閱號(hào)。

訂閱號(hào)與服務(wù)號(hào)的主要區(qū)別

訂閱號(hào)每天能群發(fā)一條消息,沒(méi)有自定義菜單及高級(jí)接口權(quán)限;服務(wù)號(hào)有自定義菜單及高級(jí)接口權(quán)限,但每月只能群發(fā)一條消息。

微信5.0發(fā)布

2013年8月5日,伴隨著微信5.0 iPhone版的發(fā)布,公眾平臺(tái)也進(jìn)行了重要的更新,主要包括:
1)運(yùn)營(yíng)主體為組織,可選擇成為服務(wù)號(hào)或者訂閱號(hào);
2)服務(wù)號(hào)可以申請(qǐng)自定義菜單;
3)使用QQ登錄的公眾號(hào),可以升級(jí)為郵箱登錄;
4)使用郵箱登錄的公眾號(hào),可以修改登錄郵箱;
5)編輯圖文消息可選填作者;
6)群發(fā)消息可以同步到騰訊微博。
其中,大家議論最多的當(dāng)屬前兩條,就是關(guān)于帳號(hào)類型和自定義菜單的更新,我這里做幾點(diǎn)補(bǔ)充說(shuō)明:
1)目前公眾號(hào)類型分為兩種:服務(wù)號(hào)和訂閱號(hào),8月5日平臺(tái)更新后所有的帳號(hào)默認(rèn)為訂閱號(hào),有一次轉(zhuǎn)換成服務(wù)號(hào)的機(jī)會(huì);
2)服務(wù)號(hào)主要面向企業(yè)、政府和其他組織,而訂閱號(hào)主要面向媒體和個(gè)人;
3)只有服務(wù)號(hào)可以申請(qǐng)自定義菜單,訂閱號(hào)不能申請(qǐng);
4)服務(wù)號(hào)每月只能群發(fā)一條消息,而訂閱號(hào)每天能群發(fā)一條消息。
平臺(tái)更新后,讓很多人糾結(jié)的是自定義菜單和每天群發(fā)一條消息不可兼得。

需求

學(xué)院需求

提供查詢服務(wù)

  • 課表
  • 成績(jī)
  • 學(xué)院最新動(dòng)態(tài)
  • 公告通知

加強(qiáng)與本學(xué)院同學(xué)的溝通

  • 提供學(xué)生與老師溝通的平臺(tái)
通過(guò)溝通了解學(xué)生的需求,有利于更好的學(xué)院發(fā)展

學(xué)生需求

  • 現(xiàn)在的大學(xué)生,網(wǎng)上的一代,手機(jī)控的一代,想要追求便捷的生活。他們對(duì)于信息的獲取,更希望通過(guò)新興媒體,像微信這樣的通訊工具。

通過(guò)需求可知學(xué)院應(yīng)該選擇服務(wù)號(hào)


看例子(無(wú)圖無(wú)真相)

看商學(xué)院做好例子(這個(gè)是訂閱號(hào),是以前申請(qǐng)的所以有自定義菜單)

魚(yú)和熊掌不可兼得,可是早申請(qǐng)的就能兼得,他就是一個(gè)例子,所以凡事還是得下手早

Alt text
Alt text

Alt text
Alt text

Alt text
Alt text

Alt text
Alt text

微信5.0后的訂閱號(hào)

Alt text
Alt text

微信5.0后的服務(wù)號(hào)

Alt text
Alt text

Alt text
Alt text

Alt text
Alt text

微信公眾平臺(tái)支持哪些編程語(yǔ)言?應(yīng)該如何選擇

凡是支持動(dòng)態(tài)Web開(kāi)發(fā)的編程語(yǔ)言都能夠用于微信公眾平臺(tái)開(kāi)發(fā),例如:Java、PHP、ASP.NET、Ruby、Python、Note.js等。
開(kāi)者人員應(yīng)該選擇自己最擅長(zhǎng)的編程語(yǔ)言進(jìn)行開(kāi)發(fā),如果都不擅長(zhǎng)怎么辦?如果都不擅長(zhǎng),建議選擇Java或PHP,原因在于網(wǎng)上關(guān)于微信公眾平臺(tái)開(kāi)發(fā)的資料大都是基于Java和PHP的,開(kāi)發(fā)起來(lái)要相對(duì)容易。

使用Java進(jìn)行微信公眾平臺(tái)開(kāi)發(fā)至少需要掌握哪些內(nèi)容

至少需要掌握J(rèn)ava基礎(chǔ)知識(shí)、JSP、Servlet、Javabean和JDBC(操作數(shù)據(jù)庫(kù))

微信上微網(wǎng)站的解釋

微網(wǎng)站本質(zhì)上就是以微信瀏覽器為入口的手機(jī)網(wǎng)站(Web APP),能夠兼容Android、iOS、WP等操作系統(tǒng)。開(kāi)發(fā)微網(wǎng)站用到的技術(shù)與開(kāi)發(fā)普通網(wǎng)站一樣,都是基于HTML(HTML5)、CSS、Javascript等,所以有普通網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn)的開(kāi)發(fā)者,完全有能力開(kāi)發(fā)微網(wǎng)站。

公眾平臺(tái)開(kāi)發(fā)接口介紹

公眾平臺(tái)是為微信用戶提供服務(wù)的平臺(tái),而公眾平臺(tái)開(kāi)發(fā)接口則是提供服務(wù)的基礎(chǔ),開(kāi)發(fā)者在公眾平臺(tái)網(wǎng)站中創(chuàng)建公眾號(hào)、獲取接口權(quán)限后,可以通過(guò)閱讀本接口文檔來(lái)幫助開(kāi)發(fā)。
公眾平臺(tái)開(kāi)發(fā)接口提供與用戶進(jìn)行消息交互、自定義菜單交互的能力。對(duì)于成功接入公眾平臺(tái)開(kāi)發(fā)接口的公眾賬號(hào),當(dāng)用戶發(fā)消息給公眾號(hào),微信公眾平臺(tái)服務(wù)器會(huì)使用http請(qǐng)求對(duì)接入的網(wǎng)址進(jìn)行消息推送,第三方服務(wù)器可通過(guò)響應(yīng)包回復(fù)特定結(jié)構(gòu),從而達(dá)到回復(fù)消息的目的

微信公共平臺(tái)服務(wù)器

先上圖


Alt text
Alt text

這是本地的服務(wù)器與微信服務(wù)器之間數(shù)據(jù)傳送(get/put)
開(kāi)發(fā)者主要是在本地服務(wù)器上進(jìn)行部署。
下面這是我對(duì)消息推送處理的理解

Alt text
Alt text

接口信息

待資料補(bǔ)全后,再次點(diǎn)擊“成為開(kāi)發(fā)者”,這時(shí)將看到接口配置信息界面,如下圖所示:


Alt text
Alt text

這里需要填寫(xiě)URL和Token兩個(gè)值。URL指的是能夠接收處理微信服務(wù)器發(fā)送的GET/POST請(qǐng)求的地址,并且是已經(jīng)存在的,現(xiàn)在就能夠在瀏覽器訪問(wèn)到的地址,這就要求我們先把公眾帳號(hào)后臺(tái)處理程序開(kāi)發(fā)好(至少應(yīng)該完成了對(duì)GET請(qǐng)求的處理)并部署在公網(wǎng)服務(wù)器上。

開(kāi)發(fā)接口信息

公眾平臺(tái)開(kāi)發(fā)接口提供與用戶進(jìn)行消息交互、自定義菜單交互的能力。對(duì)于成功接入公眾平臺(tái)開(kāi)發(fā)接口的公眾賬號(hào),當(dāng)用戶發(fā)消息給公眾號(hào),微信公眾平臺(tái)服務(wù)器會(huì)使用http請(qǐng)求對(duì)接入的網(wǎng)址進(jìn)行消息推送,第三方服務(wù)器可通過(guò)響應(yīng)包回復(fù)特定結(jié)構(gòu),從而達(dá)到回復(fù)消息的目的。

網(wǎng)址接入

Alt text
Alt text

具體細(xì)節(jié)可參微信開(kāi)發(fā)API文檔

服務(wù)器應(yīng)該滿足

  • web開(kāi)發(fā)服務(wù)器
  • 能夠解析常用的動(dòng)態(tài)Web開(kāi)發(fā)的編程語(yǔ)言例如:Java、PHP、asp.net、jsp等。
  • 需要支持學(xué)院一些信息的存儲(chǔ),而不是存儲(chǔ)在微信服務(wù)器上,本地化的存儲(chǔ)有利于加快信息的訪問(wèn)速度,對(duì)用戶的體驗(yàn)有益。

服務(wù)器的配置

開(kāi)始我考慮的是LAMP+tomcat+mono組合(個(gè)人比較喜歡開(kāi)源文化,應(yīng)此傾向于此組合)

LAMP介紹

LAMP指的Linux(操作系統(tǒng))、ApacheHTTP 服務(wù)器,MySQL(有時(shí)也指MariaDB,數(shù)據(jù)庫(kù)軟件) 和PHP(有時(shí)也是指Perl或Python) 的第一個(gè)字母,一般用來(lái)建立web 服務(wù)器。
雖然這些開(kāi)放源代碼程序本身并不是專門(mén)設(shè)計(jì)成同另幾個(gè)程序一起工作的,但由于它們的免費(fèi)和開(kāi)源,這個(gè)組合開(kāi)始流行(大多數(shù)Linux發(fā)行版本捆綁了這些軟件)。當(dāng)一起使用的時(shí)候,它們表現(xiàn)的像一個(gè)具有活力的解決方案包。
Web服務(wù)器、緩存和PHP加速
Apache是LAMP架構(gòu)最核心的Web Server,開(kāi)源、穩(wěn)定、模塊豐富是Apache的優(yōu)勢(shì)。但Apache的缺點(diǎn)是有些臃腫,內(nèi)存和CPU開(kāi)銷(xiāo)大,性能上有損耗,不如一些輕量級(jí)的Web 服務(wù)器(例如nginx)高效,輕量級(jí)的Web服務(wù)器對(duì)于靜態(tài)文件的響應(yīng)能力來(lái)說(shuō)遠(yuǎn)高于Apache服務(wù)器。
Apache做為Web Server是負(fù)載PHP的最佳選擇,如果流量很大的話,可以采用nginx來(lái)負(fù)載非PHP的Web請(qǐng)求。nginx是一個(gè)高性能的HTTP和反向代理服 務(wù)器,Nginx以它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。Nginx不支持PHP和CGI等動(dòng)態(tài)語(yǔ)言,但支持負(fù)載均衡和容 錯(cuò),可和Apache配合使用,是輕量級(jí)的HTTP服務(wù)器的首選。
Web服務(wù)器的緩存也有多種方案,Apache提供了自己的緩存模 塊,也可以使用外加的Squid模塊進(jìn)行緩存,這兩種方式均可以有效的提高Apache的訪問(wèn)響應(yīng)能力。Squid Cache是一個(gè)Web緩存服務(wù)器,支持高效的緩存,可以作為網(wǎng)頁(yè)服務(wù)器的前置cache服務(wù)器緩存相關(guān)請(qǐng)求來(lái)提高Web服務(wù)器的速度,把Squid放在 Apache的前端來(lái)緩存Web服務(wù)器生成的動(dòng)態(tài)內(nèi)容,而Web應(yīng)用程序只需要適當(dāng)?shù)卦O(shè)置頁(yè)面實(shí)效時(shí)間即可。如訪問(wèn)量巨大則可考慮使用memcache作 為分布式緩存。
PHP的加速使用eAccelerator加速器,eAccelerator是一個(gè)自由開(kāi)放源碼PHP加速器,優(yōu)化和動(dòng) 態(tài)內(nèi)容緩存,提高了性能PHP腳本的緩存性能,使得PHP腳本在編譯的狀態(tài)下,對(duì)服務(wù)器的開(kāi)銷(xiāo)幾乎完全消除。它還有對(duì)腳本起優(yōu)化作用,以加快其執(zhí)行效率。 使PHP程序代碼執(zhí)效率能提高1-10倍。

總的來(lái)說(shuō),LAMP架構(gòu)的網(wǎng)站性能會(huì)遠(yuǎn)遠(yuǎn)優(yōu)于Windows IIS + ASP + Access可以負(fù)載的訪問(wèn)量也非常大,國(guó)內(nèi)的大量個(gè)人網(wǎng)站如果想要支撐大訪問(wèn)量,采用LAMP架構(gòu)是一個(gè)不錯(cuò)的方案。
綜上所述,基于LAMP架構(gòu)設(shè)計(jì)具有成本低廉、部署靈活、快速開(kāi)發(fā)、安全穩(wěn)定等特點(diǎn),是Web網(wǎng)絡(luò)應(yīng)用和環(huán)境的優(yōu)秀組合。

tomcat介紹(用它來(lái)解析jsp)

因?yàn)門(mén)omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛(ài)好者的喜愛(ài)并得到了部分軟件開(kāi)發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。
Tomcat 服務(wù)器是一個(gè)免費(fèi)的開(kāi)放源代碼的Web 應(yīng)用服務(wù)器,屬于輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP 程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對(duì)HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用。)頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。
訣竅是,當(dāng)配置正確時(shí),Apache 為HTML頁(yè)面服務(wù),而Tomcat 實(shí)際上運(yùn)行JSP 頁(yè)面和Servlet。另外,Tomcat和IIS等Web服務(wù)器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過(guò),Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。

mono介紹(用它來(lái)解析asp.net)

moon是Novell公司開(kāi)發(fā)的跨平臺(tái)·NET運(yùn)行環(huán)境
Mono 是一個(gè)由Novell 公司主持的項(xiàng)目。該項(xiàng)目的目標(biāo)是創(chuàng)建一系列符合ECMA 標(biāo)準(zhǔn)(Ecma-334 和Ecma-335)的.NET 工具,包括C# 編譯器和共通語(yǔ)言執(zhí)行平臺(tái)。與微軟的.NET Framework 不同,Mono 項(xiàng)目不僅可以運(yùn)行于Windows 系統(tǒng)上,還可以運(yùn)行于Linux,F(xiàn)reeBSD,Unix,Mac OS X 和Solaris。

第二方案

對(duì)于第一方案,執(zhí)行過(guò)程,相當(dāng)麻煩,對(duì)于mono的配置出錯(cuò),還有兩者對(duì)于jsp和asp.net的解析也不太好,整體過(guò)于臃腫,考慮到服務(wù)器以后的維護(hù),決定放棄第一方案,采用Windows IIS+ASP+MySQL+tomcat
采用tomcat和iis服務(wù)器集成來(lái)解析jsp
這個(gè)方案實(shí)施起來(lái)相對(duì)簡(jiǎn)單。一切都是傻瓜似的操作
整體架構(gòu)部署在windows server 2008 R2系統(tǒng)上,安裝過(guò)程相對(duì)簡(jiǎn)單,主要是配置過(guò)程有點(diǎn)難度,具體配置過(guò)程在這里就不贅述了,在以后的文檔中會(huì)有詳細(xì)的記錄。

自定義菜單申請(qǐng)到了,到底該怎么創(chuàng)建、怎么使用。

自定義菜單的創(chuàng)建步驟
1、找到AppId和AppSecret。自定義菜單申請(qǐng)成功后,在“高級(jí)功能”-“開(kāi)發(fā)模式”-“接口配置信息”的最后兩項(xiàng)就是;
2、根據(jù)AppId和AppSecret,以https get方式獲取訪問(wèn)特殊接口所必須的憑證access_token;
3、根據(jù)access_token,將json格式的菜單數(shù)據(jù)通過(guò)https post方式提交。

分析創(chuàng)建菜單的難點(diǎn)

  • 首先,第1步肯定都沒(méi)有問(wèn)題,只要成功申請(qǐng)了自定義菜單,一定能拿到AppId和AppSecret這兩個(gè)值。
  • 再來(lái)看第2步,由于是get方式獲取access_token,簡(jiǎn)單的辦法是直接把ping好的url放在瀏覽器里執(zhí)行,access_token就拿到了。
  • 最后再看第3步,拼裝json格式的菜單數(shù)據(jù),雖然繁鎖一點(diǎn),但基本上也都沒(méi)有什么問(wèn)題的,因?yàn)楣俜浇o了個(gè)例子,照貓畫(huà)虎就行了。那問(wèn)題一定就出現(xiàn)在https post提交上了。

這里要好好仔細(xì)閱讀通用接口文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,648評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,181評(píng)論 25 708
  • 前言 由于最近兩個(gè)多月,筆者正和小伙伴們忙于對(duì)公司新項(xiàng)目的開(kāi)發(fā),筆者主要負(fù)責(zé)項(xiàng)目整體架構(gòu)的搭建以及功能模塊的分工。...
    CoderMikeHe閱讀 27,373評(píng)論 74 270
  • 01 成哥大二的時(shí)候,遇到了蘭花。 當(dāng)然了,他在圖書(shū)館,一個(gè)書(shū)架旁。蘭花捧著一本書(shū),在那兒聚精會(huì)神的看著,成哥看了...
    陪月亮摘星星閱讀 475評(píng)論 0 6
  • 簡(jiǎn)書(shū)終于更新了代碼高亮功能, 似乎呼喚著我回歸, 那么就來(lái)一發(fā)良心之作時(shí)隔一年, 重讀C++ Primer這本圣經(jīng)...
    Andrew_liu閱讀 2,628評(píng)論 2 26

友情鏈接更多精彩內(nèi)容