微信小程序•小故事(10)——群聊能力

發布時間:2018-05-18 22:57:20 來源:辰星網絡 編輯:rstar 閱讀()

 作者 band

我們在后臺收到很多朋友的反饋,希望更好的運用小程序群聊的能力。于是我們想寫寫群聊的故事。

 

微信群是小程序在微信這個社交工具下傳播的重要途徑,我們經常能通過群聊看見小程序的身影。我們希望開發者在實現小程序邏輯的時候,能理解每一個群聊,可實現小程序與各個群聊緊密相關的功能。

 

基于此,我們開放了群聊 ID(openGID)的功能,供開發者區分標識每個群聊。對于每個群聊而言,小程序所獲取到的 openGID 是不變的。但對于同一個群,不同的小程序內獲得的 openGID 是不一樣的。這一特性類似于標識用戶身份的 openID。

 

擁有了群聊 ID,開發者可以把用戶的操作按照群聊 ID 來聚合、沉淀信息,實現群協作功能。此外,通過 openID+openGID 的方式,還可以實現群排行的功能。

 

例如“群影”小程序以群聊ID聚合用戶上傳的圖片,實現群相冊的功能。

 

01

 如何獲取群聊ID 

 

開發者獲取 openGID 要依托于用戶轉發到群聊的小程序卡片,具體步驟如下: 

 

1

設置帶 shareTicket 的分享

 

在小程序內,開發者調用接口wx.updateShareMenu 帶參數withShareTicket:true ,設置當前頁面分享到群聊時能獲取 openGID。而shareTicket本身就是獲取 openGID 的憑證。

 

 

而 iOS/Android App 分享場景當中,微信SDK也支持把所分享的消息設置成帶 shareTicket。

 

值得注意的是,帶 shareTicket 的分享卡片會被固定在某個群聊的,也就是說分享卡片會變成不能被長按轉發。

 

2

由啟動參數獲取 shareTicket

 

當用戶從某個帶 shareTicket 的卡片進入小程序時,開發者可以在App.onLaunch 或者App.onShow 獲取 shareTicket,而在小游戲上開發者可以通過監聽 wx.onShow 或者同步調用wx.getLaunchOptionsSync 獲取shareTicket。 

 

shareTicket 實際上是小程序啟動時臨時生成的變量,在小程序生命周期內僅作為調用接口的憑證。生命周期結束后 shareTicket 就沒有意義了。

 

3

通過 shareTicket 獲取 openGID

 

開發者調 wx.getShareInfo 接口以 shareTicket 換取 openGID 的加密數據包,這是為了保證開發者服務器收到的 openGID 是可信的,開發者需要把加密數據交由后臺解密,拿到真實的 openGID。數據加密機制更多請參看[數據加密相關文檔]。

 

注意事項 ▷▷

 

由于2018年7月5日起,新提交發布的小程序版本將無法通過用戶分享獲得群ID,即開發者通wx.onShareAppMessage獲取群 ID 的方式將不再支持,后續僅支持通過啟動參數獲取群 ID。請開發者及時調整。

 

02

群聊名稱組件

 

除了群聊 ID 以外,開發者還能使用群聊對應的名稱。出于保護用戶隱私的考慮,我們不會把真實的群聊名稱暴露給開發者,而是通過 open-data 組件讓開發者在小程序前端展示某個 openGID 對應的群名稱。

 

 

其中 openGID 就是小程序獲取到的群聊 ID。 open-data 組件只展示那些用戶所在群聊ID對應的名稱。如果設置了非微信提供的群聊 ID,將無法展現群聊名稱。

 

03

群聊功能

 

1

分享設置

wx.updateShareMenu : [查看文檔]

 

2

小程序啟動參數

App.onLaunch / App.onShow : [查看文檔]

 

3

小游戲啟動參數

wx.onShow : [查看文檔]

getLaunchOptionsSync : [查看文檔]

 

4

獲取 openGID

wx.getShareInfo : [查看文檔]

 

5

群名稱組件

<open-data> : [查看文檔]

 

- END -

下一篇:返回列表
展開
亚洲美女网_成年美女黄网站色大免费全_熟妇人妻无码中文字幕