產品知識分享:外部鏈接分享到微信的邏輯

2 評論 14283 瀏覽 199 收藏 9 分鐘

分享給需要的產品!如果你剛接觸微信開發但不懂技術,或從未接觸但想了解,那就看看吧!

一、如果做好外部鏈接分享到微信呢?

你的微信群里是不是到處都是分享的鏈接? 你是否想過為什么從外部app分享到微信的文章你直接點擊就可以看?而在搶外賣紅包時總是要彈出登錄授權頁面,然后還要求你填寫手機號? 你是否思考過其中的邏輯?

本篇文章主要就幾個示例展開講述,最后提出優化方案。

1、先舉幾個示例

  1. 從美團外賣app處分享一個紅包到微信中,用戶在第一次領取紅包之前,先得拿到微信授權確認登錄后,再填寫手機號,才能領取成功
  2. 從釘釘app處分享二維碼到微信群里用以邀請成員加入公司團隊 ,掃描二維碼后無須微信授權直接進入邀請頁面,填寫個人相關信息后,加入團隊

再丟一堆微信公眾平臺開發文檔說明

網頁授權獲取用戶基本信息:

如果用戶在微信客戶端中訪問第三方網頁,公眾號可以通過微信網頁授權機制,來獲取用戶基本信息,進而實現業務邏輯。

關于網頁授權的兩種scope(應用授權作用域)的區別說明:

以snsapi_base為scope發起的網頁授權,是用來獲取進入頁面的用戶的openid的,并且是靜默授權并自動跳轉到回調頁的。用戶感知的就是直接進入了回調頁(往往是業務頁面)

以snsapi_userinfo為scope發起的網頁授權,是用來獲取用戶的基本信息的。但這種授權需要用戶手動同意,并且由于用戶同意過,所以無須關注,就可在授權后獲取該用戶的基本信息。

用戶管理類接口中的“獲取用戶基本信息接口”,是在用戶和公眾號產生消息交互或關注后事件推送后,才能根據用戶OpenID來獲取用戶基本信息。這個接口,包括其他微信接口,都是需要該用戶(即openid)關注了公眾號后,才能調用成功的。

2、示例分析

第一個示例中,當美團外賣紅包被分享到微信時,通過微信授權可以拿到用戶的基本信息(一般是:昵稱、頭像)。這屬于網頁授權中第二種scope,美團外賣需要獲取用戶的基本信息來顯示紅包數額排行榜,所以該種授權需要用戶手動同意,頁面上的表現就是需要點擊“確認登錄”,用戶授權成功后,美團外賣就可以拿到該用戶的基本信息(微信昵稱、微信頭像)。要求填寫手機號是為了將領取到的紅包關聯到該用戶的美團外賣賬號(手機號),可方便進入美團外賣app直接使用。

1

(外賣紅包分享到微信)

第二個示例中,釘釘分享了二維碼到微信群里,掃描后無須授權登錄直接進入了頁面。這屬于網頁授權中的第一種scope,掃描二維碼后,微信靜默授權并直接自動跳轉到邀請頁面,用戶在邀請頁面填寫了手機號、真實姓名和驗證碼后可加入團隊,審核通過之后直接在釘釘app上用該手機號登錄就可以看見已加入的該團隊。

1

(釘釘二維碼分享到微信)

微信公眾平臺開發時有一個openID,openID是普通用戶的一個唯一的標識,只針對當前的公眾號/H5頁面(外部鏈接)有效。也就是說,同一用戶在和不同的公眾號/外部鏈接產生關注/消息交互時,該用戶會和不同的公眾號/外部鏈接之間產生聯系,且建立每個聯系時用戶所擁有的openID是不一樣的;至于這個openID是用來干什么的,第三點講的很明白:在用戶和公眾號產生消息交互或關注后事件推送,才能根據用戶的openID來獲取用戶基本信息的。也就是說只有用戶和外部鏈接/公眾號產生消息交互/關注后,建立聯系時所產生的各個openID才生效,外部鏈接/公眾號才可以用對應用戶其相應的openID來獲取用戶基本信息。關系如圖:

1

(關系圖)

該圖為需要手動授權獲取用戶信息的情況,如果不需要獲取用戶信息,直接拿到openID跳轉頁面即可

3、關于特殊場景下的靜默授權

  1. 如上,網頁授權的第一種scope
  2. 對于已關注公眾號的用戶,如果用戶從公眾號的會話或者自定義菜單進入本公眾號的網頁授權頁,即使是scope為snsapi_userinfo,也是靜默授權,用戶無感知。所以,平常你從微信號進入外部鏈接(H5頁面)從沒讓你授過權!

二、總結+優化

1、分享外部鏈接到微信,無非就是這么兩種情況

  1. 無須拿到用戶信息,靜默授權,直接進入頁面,比較常見的如公司介紹類H5頁面、下載頁面等;
  2. 須拿到用戶信息,手動授權,確認授權后進入頁面,比較常見的如各種外賣紅包;須根據是否需要用戶信息從而選擇合適的方式。

2、如果有數據交互咋辦?

上述情況之后,如果還需要進行數據的交互,如領取紅包這種,則產品需要考慮加入登錄/注冊,將數據綁定到用戶的賬號,方便用戶進入app直接使用,否則這數據就是幽靈數據,一旦離開微信,就不知道是誰的了!

3、可以如何優化?

其實你還可以觀察到,領外賣紅包時,只有第一次領取紅包時才需要進行用戶填寫手機號(登錄/注冊),第二次及其之后再領取紅包則只要經過授權即領取成功,這是因為第一次填寫后,就將相應的用戶openID和手機號信息保存在了本地,這樣之后用戶再進入紅包頁面就可以識別出來不用再登錄了。

將信息保存在本地這種情況其實可以用到外部鏈接的優化上,比如釘釘,會發生多次邀請的情況(邀請進入多個團隊),釘釘保存了第一次加入團隊時填寫的手機號信息,所以在第二次及其之后再次打開釘釘分享出來的邀請頁面時,已默認填寫好手機號碼,只需要填寫真實姓名和驗證碼然后點擊“加入團隊”即可。釘釘還可以做的更好,真實姓名也一起保存了唄,以后就只要填寫驗證碼然后加入團隊不就好了!

1

(釘釘,第二次進入)

當然釘釘不像外賣紅包第二次及其之后進入直接領取紅包那樣可以直接加入團隊,因為釘釘需要你確認是不是要加入,這是業務需求。

到此結束,歡迎指正!

 

作者:小圣(簡書:小圣)

本文由 @小圣 原創發布于人人都是產品經理。未經許可,禁止轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 小點大用,贊

    來自北京 回復
  2. 這么好的文章沒人評論!

    來自廣東 回復