很久沒有寫日誌了,最近一直在微信公衆平臺5.0出來之後纔拿到appid,下手比較晚不少功能沒有遇上。微信雖然說開放了,可是開發的功能實在有限,就 那麼幾個簡單的接口,實在是作不了什麼事,誰讓咱們不是高級客戶。其中最主要的一個功能消息主動發送,這個也是我今天寫這個日誌的目的,相信不少人都想要 實現這個功能。從早期的文檔看,微信是有這個接口的。詳見:http://blog.csdn.net/chendeben/article /details/8708369 該做者寫的很清楚就不羅嗦了。 php
微信早期的接口文檔:http://mp.weixin.qq.com/wiki/index.php?title=MediaWiki:Sidebar&diff=prev&oldid=151 html
看 到這個接口我也試了下,可是結果很失望,顯示調用超過次數了,說白了就是不給權限。看來只能用最笨的辦法了,就是經過程序模擬用戶登陸手動發消息了。這個 不少人應該都試過了,可是噁心人的事出來了,接入公衆平臺返回的是一個加密後的字符串openid,可是發消息卻用的fakeid,騰訊這幫人真是邪惡 啊,期間也在網上找過一些資料,其中介紹最多的就是這一個:http://www.cnblogs.com/ligboy/archive/2013 /04/30/3051939.html最開始還沒看懂,後來看懂了感受不是那麼靠譜。思路我就不寫了,本人實在沒有那個文筆。 微信
說說個人思路吧,其中有一些仍是很類似的。 多線程
首 先,用戶在加關注的時候微信會觸發一個Event事件,內容裏會有用戶的openid。此時咱們能夠給用戶回一個消息。文章就在這個消息裏面,咱們把取得 的這個openid回給用戶,爲了用戶體驗咱們能夠把這個openid寫在一個連接裏面,這樣用戶就不會看到這個奇怪的字符串了。 app
而後就是 模擬用戶登陸了,這個太簡單就不說了。關鍵是登陸後的操做,咱們要取出最新的幾個用用戶,同時咱們能夠拿到用戶的fakeid,固然你的平臺不是有不少人 關注的話,那麼最上面的一個用戶確定就是剛剛加關注的(理想化狀態)。爲了更精確的肯定該用戶是剛剛加關注的,咱們要模擬和最前面幾個用戶對話。若是在 WEB頁面上你就能看到咱們剛剛回給用戶的消息就在最上面。固然這個內容裏就有咱們剛剛藏進去的openid這樣以來fakeid和openid就對應上 了,可能我說的不是太清楚,若是你們有不理解的話能夠聯繫我。 微信公衆平臺
下面就貼出部分實現代碼。須要注意的是這個過程必定要連貫,在響應了微信的 event事件後立刻就取fakeid這樣數據基本不會出錯。還有一點要說的就是必需先響應微信的事件,而後再去取fakeid來對應。最好能多線程,這 樣處理起來速度就很快了。PS:取個這樣的類名實在是對微信的不滿,沒有別的意思。區別對待用戶實在太可恨了。若是直接放出這個接口,咱們何苦要這麼折騰。 ide