网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

在微信小程序中獲取微信群 ID

發布時間:2018-04-18 10:33 所屬欄目:小程序開發教程
來自公眾號:知曉程序
兩種讀取方式
根據官方文檔,我們可以通過以下兩個方式,讀取到微信群 ID 的信息:
  • 當用戶成功地將小程序頁面分享到微信群后,小程序的回調結果中可以獲取該微信群的群 ID。

  • 當用戶從微信群中的分享入口進入小程序時,小程序可以獲取當前微信群的群 ID。

首先,我們來聊聊用戶成功地將小程序頁面分享到微信群的情況下,如何讀取目標微信群的 ID。
此次接口更新,控制小程序頁面右上角菜單中的「分享」按鈕顯示與消失,不再完全依賴頁面邏輯文件中是否擁有 onShareAppMessage 函數。
現在有兩個新的接口,可以決定小程序是否顯示分享菜單:wx.showShareMenu(顯示分享菜單)和 wx.hideShareMenu(隱藏分享菜單)。
在 wx.showShareMenu 接口中,設定 withShareTicket: true,即可在用戶分享時,獲取到shareTickets。
同時,在此次接口更新中,微信為小程序更新了 onShareAppMessage 接口。
原本這個接口的 return 只能接受 title、path 等控制分享卡片內容的參數。在此次更新后,return 可以在分享成功、失敗、完成(成功和失敗)下,執行特定的回調函數。
在回調函數中,我們可以插入參數,以便小程序將微信群信息傳入。小程序在檢測到用戶分享動作之后,會將 shareTicket 帶入到這個參數中,并執行相應回調函數。
來看代碼:

接下來,是通過微信群進入小程序情景下的微信群 ID 獲取。
用戶進入小程序時,小程序可以在 app 對象中的 onLaunch 生命周期函數中,獲取到進入小程序的渠道(情景值)。
當情景值為 1044,即通過帶 shareTicket 的微信群分享卡片進入小程序,小程序就可以額外獲取到 shareTicket。
這一步的代碼就比較簡單了:

有了 shareTicket,我們就可以通過調用 wx.getShareInfo 函數,獲取到目標微信群(加密過后的)ID 了。

需要注意的是,如果當前用戶未登錄(從未調用 wx.login 或 session 過期),這些接口都會出現調用失敗的情況。
另外,當分享失敗或數據獲取失敗,這些函數只會調用 fail(失敗)和 complete(完成)回調,而不會調用 success(成功)回調。
建議直接使用 complete 回調,并通過數據包中的錯誤碼,判斷接口是否成功調用,以免出現調用失敗時小程序無相應反應的情況。
在電腦上調試分享接口
為了便于開發,微信很貼心地在開發者工具中加入了分享接口調試功能。下面,就來告訴你,調試分享接口的具體方法。
首先是用戶的分享動作調試。
在目標頁面中,點擊右上角的「更多」按鈕,再點擊「轉發」。這時候,頁面會變成「發送給好友」,里面有開發者工具提供的 9 個模擬群,任君選擇。
隨意點擊一個群,進行模擬分享動作,小程序就可以獲取到模擬群的加密數據。

 
接下來,是獲取進入小程序的微信群信息的調試方法。
點擊左側「編譯」按鈕下方的「自定義編譯」按鈕,在「設置應用的進入場景」,選擇「1044:微信群會話中的小程序消息卡片(帶 shareTicket)」。
選擇場景之后,對話框下方會多出「選擇進入的群」。隨便選擇一個測試群,再點擊確定,你就可以開始調試了。

 
如果你利用 wx.getShareInfo 接口,調試出的結果是這樣,那么恭喜你,你的代碼沒毛病,可以直接進入下一個步驟——數據解碼。

 
數據解碼
為了保證用戶隱私安全,微信特意將微信群 ID 進行了非常復雜的加密。當加密數據直接發到服務器后,服務器還需要再進行一步解碼,才能正常使用微信群信息。
如果你之前做過小程序中用戶數據的解碼,那么你可以將同樣的代碼套用到解碼微信群數據上,因為二者的加密算法是一模一樣的。
如果你沒有做過類似的解碼工作,也不用擔心,微信提供了包括 PHP、Node.js 等環境下的解碼 demo 代碼。我們只需從小程序開發文檔中下載 demo 代碼,再將其引入,也能輕松進行解碼。
我們以 Node.js 為例,演示如何使用官方的解碼 Demo:
  • 解壓官方 Demo 代碼包,在解壓后的文件夾中找到 Node 這個文件夾。

  • 通過終端(Terminal)進入這個文件夾,執行 npm init 命令,將它變為 Node.js 應用。

  • 修改文件夾中的 demo.js,將示例代碼替換成實際信息,包括小程序 App ID、登錄用戶的 Session Key、加密數據等等。

  • 在終端中,執行 node demo.js 命令 。

執行后的結果如下:

 
比較有意思的是,在宣布這個消息當天進行調試,分享接口仍可以獲取到微信群名稱,但現在已無法正常獲取。不知道是有意為之還是 bug 使然。
但是,微信群的唯一 ID(openGId)仍然可以正常獲取。開發者依然可以通過這個 ID 識別不同的微信群,進而判斷用戶通過哪一個微信群進入小程序。
更多關于轉發API的內容,請參考: 
跳坑《二百一十一》轉發API:onShareAppMessage使用


易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/23657.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×