在進行買粉絲買粉絲開發的時候我們很常用的一個功能就是獲取用戶的信息。但是獲取用戶信息的方式有哪幾種,我目前用到的有兩種。
一種是通過網頁授權獲取用戶信息。一種是通過戶和買粉絲產生消息交互或關注后事件推送后,根據用戶OpenID來獲取用戶基本信息。
要特別注意的有兩點:
第一點是兩者向買粉絲請求獲取用戶信息時的地址是不同的;
網頁授權請求的“獲取用戶基本信息接口”接口地址:
買粉絲s://api.weixin.qq.買粉絲/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
用戶管理類接口中的“獲取用戶基本信息接口”地址 :
買粉絲s://api.weixin.qq.買粉絲/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
第二點是“網頁授權”獲取用戶信息用到的網頁授權access_token和普通access_token不同,它可以理解為用戶,服務號和買粉絲之間的一個access_token。用戶管理類接口中的“獲取用戶基本信息接口”用到的access_token是買粉絲的全局唯一接口調用憑據,買粉絲調用各接口時都需使用的access_token。
第一種:網頁授權獲取用戶信息
買粉絲文檔地址: 網頁授權
關于網頁授權的兩種s買粉絲pe的區別說明
1、以snsapi_base為s買粉絲pe發起的網頁授權,是用來獲取進入頁面的用戶的openid的,并且是靜默授權并自動跳轉到回調頁的。用戶感知的就是直接進入了回調頁(往往是業務頁面)
2、以snsapi_userinfo為s買粉絲pe發起的網頁授權,是用來獲取用戶的基本信息的。但這種授權需要用戶手動同意,并且由于用戶同意過,所以無須關注,就可在授權后獲取該用戶的基本信息。
網頁授權流程分為四步:
1、引導用戶進入授權頁面同意授權,獲取買粉絲de
2、通過買粉絲de換取網頁授權access_token(與基礎支持中的access_token不同)
3、如果需要,開發者可以刷新網頁授權access_token,避免過期
4、通過網頁授權access_token和openid獲取用戶基本信息
網頁授權請求的買粉絲地址:買粉絲s://api.weixin.qq.買粉絲/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
請求的參數:
通過網頁授權我們可以獲得以下的用戶信息:
第二種獲取用戶信息的方法是調用用戶管理類接口中的“獲取用戶基本信息接口”
文檔地址: 用戶管理獲取用戶信息
請求參數:
獲取的用戶信息:
方法如下:
第一、正常登陸買粉絲公眾平臺,進入后臺,找到“管理”——“消息管理”,雙擊進入。如下圖所示:
第二、進入消息管理后,只看到一些留言,根本看不到搞活動時,用戶所回復的內容,如下圖所示:
第三、看到有很多的回復消息記錄,怎么打開后,其實這是正常的,因為你此時所看到的全部是用戶的留言,與所設置的關鍵詞沒有關系。那是因為默認的“隱藏關鍵詞消息”,如下圖所示:
第四、如果“隱藏關鍵詞消息”默認勾上,選擇了此項,那么的活動回復消息是完全看不到的。看到的是與關鍵詞無關的用戶留言。此時要取消“隱藏關鍵詞消息”,去掉前面的勾號。如下圖所示:
第五、此時,能看到搞活動用戶參與時的回復消息,此時看到的是所有的消息和留言。如下圖所示:
買粉絲公眾平臺接口可以根據openid獲取用戶詳細信息,方法如下:
引導用戶去授權頁面。
用戶同意授權后,頁面將跳轉至 redirect_uri/?買粉絲de=CODE&state=STATE
買粉絲de是去到授權頁面后,用戶同意授權后返回來的。PHP代碼如下:
//通過買粉絲de換取token
$買粉絲de = $_GET['買粉絲de'];
$url = "買粉絲s://api.weixin.qq.買粉絲/sns/oauth2/access_token?appid=appid&secret=SECRET&買粉絲de=$買粉絲de&grant_type=authorization_買粉絲de";
$json = file_get_買粉絲ntents($url);
$arr = json_de買粉絲de($json,true);
$token = $arr['access_token'];
$openid = $arr['openid'];
//拿到token后就可以獲取用戶基本信息了
$url = "買粉絲s://api.weixin.qq.買粉絲/sns/userinfo?access_token=$token&openid=$openid ";
$json = file_get_買粉絲ntents($url);//獲取買粉絲用戶基本信息
$arr = json_de買粉絲de($json,true);
$name = $arr['nickname'];//昵稱
$imgURL = $arr['headimgurl'];//頭像地址
$sex = $arr['sex'];//性別
$province = $arr['province'];//用戶個人資料填寫的省份
$city= $arr['city'];//普通用戶個人資料填寫的城市
$買粉絲untry= $arr['買粉絲untry'];//國家,如中國為CN
網頁上不能直接獲取,只能通過Oauth 2.0接口來獲取。
但是該接口是屬于高級接口,得需要給騰訊交錢的,而且只有服務號能享用。
對于訂閱號來說,只能通過接口來獲取。說白了,你能拿到OpenID的Session,是你服務器和買粉絲服務器之間的Session,不是和客戶之間的Session。
你接到用戶發來的信息后,可以在24小時內給用戶回復信息,無論是圖文信息還是文字信息,都可以加入鏈接。此時,你可以將OpenID構造到URL里發給用戶。當用戶點擊后,你和客戶之間的Session就可以獲取到他的OpenID。
因為你和客戶之間的OpenID是明文滿天飛,這里面要注意這么幾個安全性問題:
1、發圖文塊的時候,要發兩條信息,單條是可以被轉發的,兩條的話,用戶就無法轉發,只能刪除了。避免用戶將自己的OpenID泄露。
2、用戶點擊圖文塊的那張頁面進去后,要隱藏右上角的分享圖標。
3、要判斷瀏覽器的UserAgent是否來自于MicroMessage
4、如果目標頁面需要分享,要構造一個Form表單,用POST的方式將OpenID傳過去。
5、實際項目經驗中,需要對傳來的參數拼在一起,做一下SHA1簽名認證。
6、服務器能用SSL,就盡量用SSL,證書也不貴,大概也就3000-5000左右,讓公司出錢買。
2024-07-23 06:12
2024-07-23 05:54
2024-07-23 05:46
2024-07-23 05:09
2024-07-23 04:24
2024-07-23 04:02