[轉] 產品知識分享:外部連接分享到微信的邏輯

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

1、若是作好外部連接分享到微信呢?微信


你的微信羣裏是否是處處都是分享的連接? 你是否想過爲何從外部app分享到微信的文章你直接點擊就能夠看?而在搶外賣紅包時老是要彈出登陸受權頁面,而後還要求你填寫手機號? 你是否思考過其中的邏輯?微信開發

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

一、先舉幾個示例微信公衆平臺

1)從美團外賣app處分享一個紅包到微信中,用戶在第一次領取紅包以前,先得拿到微信受權確認登陸後,再填寫手機號,才能領取成功優化

2)從釘釘app處分享二維碼到微信羣裏用以邀請成員加入公司團隊 ,掃描二維碼後無須微信受權直接進入邀請頁面,填寫我的相關信息後,加入團隊blog

先來一堆微信公衆平臺開發文檔說明接口

網頁受權獲取用戶基本信息:事件

若是用戶在微信客戶端中訪問第三方網頁,公衆號能夠經過微信網頁受權機制,來獲取用戶基本信息,進而實現業務邏輯。ip

關於網頁受權的兩種scope(應用受權做用域)的區別說明:

一、以snsapi_base爲scope發起的網頁受權,是用來獲取進入頁面的用戶的openid的,而且是靜默受權並自動跳轉到回調頁的。用戶感知的就是直接進入了回調頁(每每是業務頁面)

二、以snsapi_userinfo爲scope發起的網頁受權,是用來獲取用戶的基本信息的。但這種受權須要用戶手動贊成,而且因爲用戶贊成過,因此無須關注,就可在受權後獲取該用戶的基本信息。

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

二、示例分析

第一個示例中,當美團外賣紅包被分享到微信時,經過微信受權能夠拿到用戶的基本信息(通常是:暱稱、頭像)。這屬於網頁受權中第二種scope,美團外賣須要獲取用戶的基本信息來顯示紅包數額排行榜,因此該種受權須要用戶手動贊成,頁面上的表現就是須要點擊「確認登陸」,用戶受權成功後,美團外賣就能夠拿到該用戶的基本信息(微信暱稱、微信頭像)。要求填寫手機號是爲了將領取到的紅包關聯到該用戶的美團外賣帳號(手機號),可方便進入美團外賣app直接使用。


外賣紅包分享到微信

第二個示例中,釘釘分享了二維碼到微信羣裏,掃描後無須受權登陸直接進入了頁面。這屬於網頁受權中的第一種scope,掃描二維碼後,微信靜默受權並直接自動跳轉到邀請頁面,用戶在邀請頁面填寫了手機號、真實姓名和驗證碼後可加入團隊,審覈經過以後直接在釘釘app上用該手機號登陸就能夠看見已加入的該團隊。


釘釘二維碼分享到微信

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


關係圖

該圖爲須要手動受權獲取用戶信息的狀況,若是不須要獲取用戶信息,直接拿到openID跳轉頁面便可

三、關於特殊場景下的靜默受權

1)如上,網頁受權的第一種scope

2)對於已關注公衆號的用戶,若是用戶從公衆號的會話或者自定義菜單進入本公衆號的網頁受權頁,即便是scope爲snsapi_userinfo,也是靜默受權,用戶無感知。因此,日常你從微信號進入外部連接(H5頁面)從沒讓你授過權!

 

2、總結+優化


一、分享外部連接到微信,無非就是這麼兩種狀況

1)無須拿到用戶信息,靜默受權,直接進入頁面,比較常見的如公司介紹類H5頁面、下載頁面等;

2)須拿到用戶信息,手動受權,確認受權後進入頁面,比較常見的如各類外賣紅包;須根據是否須要用戶信息從而選擇合適的方式。

二、若是有數據交互咋辦?

上述狀況以後,若是還須要進行數據的交互,如領取紅包這種,則產品須要考慮加入登陸/註冊,將數據綁定到用戶的帳號,方便用戶進入app直接使用,不然這數據就是幽靈數據,一旦離開微信,就不知道是誰的了!

三、能夠如何優化?

其實你還能夠觀察到,領外賣紅包時,只有第一次領取紅包時才須要進行用戶填寫手機號(登陸/註冊),第二次及其以後再領取紅包則只要通過受權即領取成功,這是由於第一次填寫後,就將相應的用戶openID和手機號信息保存在了本地,這樣以後用戶再進入紅包頁面就能夠識別出來不用再登陸了。

將信息保存在本地這種狀況其實能夠用到外部連接的優化上,好比釘釘,會發生屢次邀請的狀況(邀請進入多個團隊),釘釘保存了第一次加入團隊時填寫的手機號信息,因此在第二次及其以後再次打開釘釘分享出來的邀請頁面時,已默認填寫好手機號碼,只須要填寫真實姓名和驗證碼而後點擊「加入團隊」便可。釘釘還能夠作的更好,真實姓名也一塊兒保存了唄,之後就只要填寫驗證碼而後加入團隊不就行了!


釘釘,第二次進入

固然釘釘不像外賣紅包第二次及其以後進入直接領取紅包那樣能夠直接加入團隊,由於釘釘須要你確認是否是要加入,這是業務需求。

到此結束,歡迎指正!



文/小聖(簡書做者) 原文連接:http://www.jianshu.com/p/9710a186ea65 著做權歸做者全部,轉載請聯繫做者得到受權,並標註「簡書做者」。
相關文章
相關標籤/搜索