午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

如何在小程序中,獲取微信群 ID?

 timtxu 2017-05-11

那么,如何正確地在小程序里,加入這個能力呢?在使用開發(fā)者工具的時候,如何進(jìn)行調(diào)試呢?

今天,「知曉程序」就來告訴你,如何正確地在小程序里讀取微信群 ID。

關(guān)注「知曉程序」公眾號,在微信后臺回復(fù)「ID」,查看小程序獲取群 ID Demo 的源碼。

兩種讀取方式

根據(jù)官方文檔,我們可以通過以下兩個方式,讀取到微信群 ID 的信息:

  • 當(dāng)用戶成功地將小程序頁面分享到微信群的時候,小程序的回調(diào)中可以獲取分享目標(biāo)的微信群 ID。
  • 當(dāng)用戶從微信群進(jìn)入小程序頁面的時候,小程序啟動時可以獲取用戶進(jìn)入小程序的渠道群聊 ID。

首先,我們來聊聊用戶成功地將小程序頁面分享到微信群的情況下,如何讀取目標(biāo)微信群的 ID。

此次接口更新,控制小程序頁面右上角菜單中的「分享」按鈕顯示與消失,不再完全依賴頁面邏輯文件中是否擁有onShareAppMessage現(xiàn)在有兩個新的接口,可以決定小程序是否顯示分享菜單wx.showShareMenu(顯示分享菜單)和 wx.hideShareMenu(隱藏分享菜單)。在 接口中,shareTickets原本這個接口的return只能接受path等控制分享卡片內(nèi)容的參數(shù)。在此次更新后,return可以在分享成功、失敗、完成(成功和失?。┫?,執(zhí)行特定的回調(diào)函數(shù)。在回調(diào)函數(shù)中,我們可以插入?yún)?shù),以便小程序?qū)⑽⑿湃盒畔魅搿P〕绦蛟跈z測到用戶分享動作之后,會將shareTicket帶入到這個參數(shù)中,并執(zhí)行相應(yīng)回調(diào)函數(shù)。

來看代碼:

Page({ onLoad { wx.showShareMenu({ withShareTicket: true //要求小程序返回分享目標(biāo)信息 }) }, // 其他的頁面函數(shù)、生命周期函數(shù)等 onShareAppMessage { return { title: '頁面分享標(biāo)題', path: '/pages/path/to/target', success(res){ console.log(res.shareTickets[0]) // 奇怪為什么 shareTickets 是個數(shù)組?這個數(shù)組永遠(yuǎn)只有一個值。 } } } }

接下來,是通過微信群進(jìn)入小程序情景下的微信群 ID 獲取。

用戶進(jìn)入小程序時,onLaunch生命周期函數(shù)中,獲取到進(jìn)入小程序的渠道(情景值)的微信群分享卡片進(jìn)入小程序,小程序就可以額外獲取到 。App({ onLaunch: function (ops) { if(ops.scene == 1044){ console.log(ops.shareTicket) } } })有了shareTicket通過調(diào)用wx.getShareInfo函數(shù),獲取到目標(biāo)微信群(加密過后的)ID 了需要注意的是,如果當(dāng)前用戶未登錄(從未調(diào)用wx.loginsession過期),這些接口都會出現(xiàn)調(diào)用失敗的情況另外,當(dāng)分享失敗或數(shù)據(jù)獲取失敗,這些函數(shù)只會調(diào)用fail「知曉程序」complete回調(diào),并通過數(shù)據(jù)包中的錯誤碼,判斷接口是否成功調(diào)用,以免出現(xiàn)調(diào)用失敗時小程序無相應(yīng)反應(yīng)的情況。

在電腦上調(diào)試分享接口

為了便于開發(fā),微信很貼心地在開發(fā)者工具中加入了分享接口調(diào)試功能。下面,「知曉程序」就來告訴你,調(diào)試分享接口的具體方法。

首先是用戶的分享動作調(diào)試。

在目標(biāo)頁面中,點(diǎn)擊右上角的「更多」按鈕,再點(diǎn)擊「轉(zhuǎn)發(fā)」。這時候,頁面會變成「發(fā)送給好友」,里面有開發(fā)者工具提供的 9 個模擬群,任君選擇。

隨意點(diǎn)擊一個群,進(jìn)行模擬分享動作,小程序就可以獲取到模擬群的加密數(shù)據(jù)

接下來,是獲取進(jìn)入小程序的微信群信息的調(diào)試方法。

點(diǎn)擊左側(cè)「編譯」按鈕下方的「自定義編譯」按鈕,在「設(shè)置應(yīng)用的進(jìn)入場景」,選擇「1044:微信群會話中的小程序消息卡片(帶 shareTicket)」。

選擇場景之后,對話框下方會多出「選擇進(jìn)入的群」。隨便選擇一個測試群,再點(diǎn)擊確定,你就可以開始調(diào)試了

如果你利用wx.getShareInfo接口,調(diào)試出的結(jié)果是這樣,那么恭喜你,你的代碼沒毛病,可以直接進(jìn)入下一個步驟——數(shù)據(jù)解碼。

數(shù)據(jù)解碼

為了保證用戶隱私安全,微信特意將微信群 ID 進(jìn)行了非常復(fù)雜的加密。當(dāng)加密數(shù)據(jù)直接發(fā)到服務(wù)器后,服務(wù)器還需要再進(jìn)行一步解碼,才能正常使用微信群信息。

如果你之前做過小程序中用戶數(shù)據(jù)的解碼,那么你可以將同樣的代碼套用到解碼微信群數(shù)據(jù)上,因?yàn)槎叩募用芩惴ㄊ且荒R粯拥摹?/p>

如果你沒有做過類似的解碼工作,也不用擔(dān)心,微信提供了包括 PHP、Node.js 等環(huán)境下的解碼 demo 代碼。我們只需從小程序開發(fā)文檔中下載 demo 代碼,再將其引入,也能輕松進(jìn)行解碼。

我們以 Node.js 為例,演示如何使用官方的解碼 Demo:

  • 解壓官方 Demo 代碼包,在解壓后的文件夾中找到Node這個文件夾。
  • 通過終端(Terminal)進(jìn)入這個文件夾,執(zhí)行npm init命令,將它變?yōu)?Node.js 應(yīng)用。
  • 修改文件夾中的demo.js,將示例代碼替換成實(shí)際信息,包括小程序 App ID、登錄用戶的 Session Key、加密數(shù)據(jù)等等。
  • 在終端中,執(zhí)行node demo.js命令 。

執(zhí)行后的結(jié)果如下:

比較有意思的是,在宣布這個消息當(dāng)天進(jìn)行調(diào)試,分享接口仍可以獲取到微信群名稱,但現(xiàn)在已無法正常獲取。不知道是有意為之還是 bug 使然。

但是,微信群的唯一 ID(openGId)仍然可以正常獲取。開發(fā)者依然可以通過這個 ID 識別不同的微信群,進(jìn)而判斷用戶通過哪一個微信群進(jìn)入小程序。

關(guān)注「知曉程序」公眾號,在微信后臺回復(fù)「點(diǎn)評」,獲取大眾點(diǎn)評點(diǎn)餐小程序全套開發(fā)經(jīng)驗(yàn)。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多