亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

微信開發 網頁授權獲取用戶基本信息

2024-05-04 11:05:19
字體:
來源:轉載
供稿:網友

微信公眾平臺近日推出微信認證,認證后可以獲得高級接口權限。許多朋友在使用時失敗或無法理解其內容,今天錯新技術頻道小編為大家提供微信開發 網頁授權獲取用戶基本信息。

一、什么是OAuth2.0

官方網站:http://oauth.net/?? http://oauth.net/2/

權威定義:OAuth is An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications.

OAuth是一個開放協議,允許用戶讓第三方應用以安全且標準的方式獲取該用戶在某一網站、移動或桌面應用上存儲的私密的資源(如用戶個人信息、照片、視頻、聯系人列表),而無需將用戶名和密碼提供給第三方應用。

OAuth 2.0是OAuth協議的下一版本,但不向后兼容OAuth 1.0。 OAuth 2.0關注客戶端開發者的簡易性,同時為Web應用,桌面應用和手機,和起居室設備提供專門的認證流程。

OAuth允許用戶提供一個令牌,而不是用戶名和密碼來訪問他們存放在特定服務提供者的數據。每一個令牌授權一個特定的網站(例如,視頻編輯網站)在特定的時段(例如,接下來的2小時內)內訪問特定的資源(例如僅僅是某一相冊中的視頻)。這樣,OAuth允許用戶授權第三方網站訪問他們存儲在另外的服務提供者上的信息,而不需要分享他們的訪問許可或他們數據的所有內容。

新浪微博API目前也使用OAuth 2.0。

?

二、微信公眾平臺OAuth2.0授權

微信公眾平臺OAuth2.0授權詳細步驟如下:

1. 用戶關注微信公眾賬號。
2. 微信公眾賬號提供用戶請求授權頁面URL。
3. 用戶點擊授權頁面URL,將向服務器發起請求
4. 服務器詢問用戶是否同意授權給微信公眾賬號(scope為snsapi_base時無此步驟)
5. 用戶同意(scope為snsapi_base時無此步驟)
6. 服務器將CODE通過回調傳給微信公眾賬號
7. 微信公眾賬號獲得CODE
8. 微信公眾賬號通過CODE向服務器請求Access Token
9. 服務器返回Access Token和OpenID給微信公眾賬號
10. 微信公眾賬號通過Access Token向服務器請求用戶信息(scope為snsapi_base時無此步驟)
11. 服務器將用戶信息回送給微信公眾賬號(scope為snsapi_base時無此步驟)

使用的AppId和AppSecret在開發者中心-開發者ID中,可以找到。

?

1. 配置授權回調頁面域名

進入微信公眾平臺后臺后,依次進入開發者中心-權限表,找到網頁授權獲取用戶基本信息,

?

點擊右側的修改。

授權回調域名配置規范為全域名并且不帶http,比如需要網頁授權的域名為:www.qq.com,配置以后此域名下面的頁面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以進行OAuth2.0鑒權。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com無法進行OAuth2.0鑒權。

這里我們填寫方倍工作室的一個百度應用二級域名為 mascot.duapp.com

如果你的網址沒有被列入過黑名單,就會在頂部出現

然后,域名配置就成功了。

2. 用戶授權并獲取code

在域名根目錄下,新建一個文件,命名為oauth2.php,其內容為

<?phpif (isset($_GET[‘code‘])){ echo $_GET[‘code‘];}else{ echo "NO CODE";}?>

先了解下請求授權頁面的構造方式:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

參數說明

?

參數 必須 說明
appid 公眾號的唯一標識
redirect_uri 授權后重定向的回調鏈接地址
response_type 返回類型,請填寫code
scope 應用授權作用域,snsapi_base (不彈出授權頁面,直接跳轉,只能獲取用戶openid),snsapi_userinfo (彈出授權頁面,可通過openid拿到昵稱、性別、所在地。并且,即使在未關注的情況下,只要用戶授權,也能獲取其信息)
state 重定向后會帶上state參數,開發者可以填寫任意參數值
#wechat_redirect 直接在微信打開鏈接,可以不填此參數。做頁面302重定向時候,必須帶此參數

應用授權作用域:由于snsapi_base只能獲取到openid,意義不大,所以我們使用snsapi_userinfo。

回調地址:填寫為剛才上傳后的oauth2.php的文件地址,

state參數:隨便一個數字,這里填1

構造請求url如下:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8888888888888888&redirect_uri=http://mascot.duapp.com/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect

把這個鏈接發送到微信中,以便在微信瀏覽器中打開,這里使用A鏈接封裝如下:

歡迎關注【近寶】,它能讓你更加方便尋找在你附近合你心意的餐飲、服裝、百貨、美容美發店鋪。
<a >點擊這里綁定</a>
技術支持 方倍工作室

在微信中顯示如下

點擊綁定后,彈出應用授權界面

選擇允許,點擊

跳轉到auth2.php頁面,執行

echo $_GET[‘code‘]

界面上顯示的就是code,這時候通過右上角按鈕中的復制鏈接,得到鏈接如下:

http://mascot.duapp.com/oauth2.php?code=00b788e3b42043c8459a57a8d8ab5d9f&state=1

我們成功得到了code了。

注意:如果在綁定的時候出現這樣的界面,就說明參數不對,需要回頭檢查一下參數


?

3. 使用code換取access_token

換取網頁授權access_token頁面的構造方式:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

參數說明

?

參數 是否必須 說明
appid 公眾號的唯一標識
secret 公眾號的appsecret
code 填寫第一步獲取的code參數
grant_type 填寫為authorization_code

code:在這里填寫為上一步獲得的值

構造請求url如下:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx8888888888888888&secret=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&code=00b788e3b42043c8459a57a8d8ab5d9f&grant_type=authorization_code

可以在瀏覽器中直接執行這條語句:

(

這里是關鍵,就是通過上面的url獲取json數據的代碼

   $ch = curl_init();  curl_setopt($ch, CURLOPT_URL, $url);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 要求結果為字符串且輸出到屏幕上  curl_setopt($ch, CURLOPT_HEADER, 0); // 不要http header 加快效率  curl_setopt($ch, CURLOPT_USERAGENT, ‘Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)‘);  curl_setopt($ch, CURLOPT_TIMEOUT, 15);  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https請求 不驗證證書和hosts  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);    $output = curl_exec($ch);  curl_close($ch);  $jsondecode = json_decode($output); //對JSON格式的字符串進行編碼  $array = get_object_vars($jsondecode);//轉換成數組      //紅色兩行是重點,針對https的,讓我糾結了一天多  echo $array;

)

得到如下json數據:

{ "access_token": "OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-G0ZWEE5-uBjBz941EOPqDQy5sS_GCs2z40dnvU99Y5AI1bw2uqN--2jXoBLIM5d6L9RImvm8Vg8cBAiLpWA8Vw", "expires_in": 7200, "refresh_token": "OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-G0ZWEE5-uBjBz941EOPqDQy5sS_GCs2z40dnvU99Y5CZPAwZksiuz_6x_TfkLoXLU7kdKM2232WDXB3Msuzq1A", "openid": "oLVPpjqs9BhvzwPj5A-vTYAX3GLc", "scope": "snsapi_userinfo,"}

數據格式解讀如下:

?

參數 描述
access_token 網頁授權接口調用憑證,注意:此access_token與基礎支持的access_token不同
expires_in access_token接口調用憑證超時時間,單位(秒)
refresh_token 用戶刷新access_token
openid 用戶唯一標識,請注意,在未關注公眾號時,用戶訪問公眾號的網頁,也會產生一個用戶和公眾號唯一的OpenID
scope 用戶授權的作用域,使用逗號(,)分隔

?

?

于是,我們成功的通過code換取到了access_token,以及refresh_token。

?

?

刷新access_token

官方文檔中提到了刷新access_token的功能,但這不是必須要做的,初次使用可以先忽略。

url請求方法如下:

https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

參數說明
?

?

參數 是否必須 說明
appid 公眾號的唯一標識
grant_type 填寫為refresh_token
refresh_token 填寫通過access_token獲取到的refresh_token參數

構造如下:
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=wx8888888888888888&grant_type=refresh_token&refresh_token=OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-G0ZWEE5-uBjBz941EOPqDQy5sS_GCs2z40dnvU99Y5CZPAwZksiuz_6x_TfkLoXLU7kdKM2232WDXB3Msuzq1A

在瀏覽器中執行得到前面同樣格式的json數據

4. 使用access_token獲取用戶信息

請求方法:

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
參數說明

?

參數 描述
access_token 網頁授權接口調用憑證,注意:此access_token與基礎支持的access_token不同
openid 用戶的唯一標識

構造url如下:

https://api.weixin.qq.com/sns/userinfo?access_token=OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-G0ZWEE5-uBjBz941EOPqDQy5sS_GCs2z40dnvU99Y5AI1bw2uqN--2jXoBLIM5d6L9RImvm8Vg8cBAiLpWA8Vw&openid=oLVPpjqs9BhvzwPj5A-vTYAX3GLc

可以在瀏覽器中直接執行這條語句:

得到如下json數據:

{ "openid": "oLVPpjqs9BhvzwPj5A-vTYAX3GLc", "nickname": "方倍", "sex": 1, "language": "zh_CN", "city": "Shenzhen", "province": "Guangdong", "country": "CN", "headimgurl": "http://wx.qlogo.cn/mmopen/utpKYf69VAbCRDRlbUsPsdQN38DoibCkrU6SAMCSNx558eTaLVM8PyM6jlEGzOrH67hyZibIZPXu4BK1XNWzSXB3Cs4qpBBg18/0", "privilege": []}

參數解讀:

?

?

參數 描述
openid 用戶的唯一標識
nickname 用戶昵稱
sex 用戶的性別,值為1時是男性,值為2時是女性,值為0時是未知
province 用戶個人資料填寫的省份
city 普通用戶個人資料填寫的城市
country 國家,如中國為CN
headimgurl 用戶頭像,最后一個數值代表正方形頭像大?。ㄓ?、46、64、96、132數值可選,0代表640*640正方形頭像),用戶沒有頭像時該項為空
privilege 用戶特權信息,json 數組,如微信沃卡用戶為(chinaunicom)

這與我個人的微信信息是一致的

至此,在不輸入我的賬號及密碼的情況下,微信公眾賬號近寶獲得了我的個人信息,這些信息包括昵稱、性別、國家、省份、城市、個人頭像以及特權列表。

一個完整的OAuth2認證就完成了。

三、詳細演示

關注方倍工作室(二維碼見下圖),回復“授權”,返回圖文消息,點擊圖片

?

在確認頁面,點擊“允許”

彈出獲取到的結果(圖片做了防盜處理,所以不能直接顯示出來,可以下載到本地再來顯示)

?

?

以上就是關于微信開發 網頁授權獲取用戶基本信息,網頁授權獲取用戶信息的資料整理,后續繼續補充相關資料,謝謝大家對錯新技術頻道的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
最近2019年中文视频免费在线观看| 91av在线不卡| 欧美另类99xxxxx| 77777少妇光屁股久久一区| 欧美日韩免费在线| 久久手机精品视频| 日韩在线高清视频| 欧美激情国产日韩精品一区18| 69国产精品成人在线播放| 韩剧1988在线观看免费完整版| 亚洲国产欧美自拍| 精品国产31久久久久久| 欧美中文在线观看国产| 国产精品成人一区二区三区吃奶| 日韩av在线播放资源| 另类色图亚洲色图| 欧美日韩精品国产| 欧美激情一区二区三区在线视频观看| 久久偷看各类女兵18女厕嘘嘘| 国产精品青草久久久久福利99| 伊人久久久久久久久久久久久| 尤物九九久久国产精品的特点| 538国产精品视频一区二区| 亚洲视频自拍偷拍| 性色av一区二区三区免费| 欧美性猛交xxxxx免费看| 久久久久亚洲精品国产| 91禁国产网站| 日本精品中文字幕| 亚洲成av人影院在线观看| 亚洲iv一区二区三区| 亚洲精品欧美一区二区三区| 久久免费国产视频| 成人福利视频在线观看| 欧洲美女免费图片一区| 成人免费午夜电影| 日本一区二三区好的精华液| 日韩精品视频在线免费观看| 久久久久五月天| 欧美福利视频在线观看| 亚洲一区二区三区四区在线播放| 日韩av资源在线播放| 国产欧美精品在线| 91wwwcom在线观看| 日韩欧美在线网址| 亚洲黄色在线观看| 日韩精品久久久久| 国产视频亚洲视频| 国产亚洲欧洲高清| 国产视频久久久久久久| 中文字幕日韩在线视频| 亚洲精品国产综合区久久久久久久| 国产一区二区三区三区在线观看| 亚洲成人性视频| 亚洲精品乱码久久久久久按摩观| 欧美专区日韩视频| 国产精品色视频| 亚洲国产精品电影在线观看| 国产一区二区三区18| 日本成熟性欧美| 成人久久久久久久| 91精品国产电影| 欧美激情第三页| 成人精品一区二区三区电影黑人| 亚洲天堂影视av| 亚洲国产精品久久久久久| 久久av在线看| 精品国产成人在线| 视频在线一区二区| 国语自产精品视频在线看抢先版图片| 国产亚洲a∨片在线观看| 国产精品日韩欧美综合| 亚洲精品福利在线观看| 国产精品欧美一区二区| 久久99热精品这里久久精品| 亚洲第一网站免费视频| 精品国产精品自拍| 激情久久av一区av二区av三区| 国产一区二区精品丝袜| 欧美二区在线播放| 欧美疯狂xxxx大交乱88av| 成人黄色短视频在线观看| 国产精品久久久久高潮| 亚洲天堂网站在线观看视频| 久久久久久久电影一区| 亚洲区在线播放| 亚洲久久久久久久久久| 69av在线播放| www.美女亚洲精品| 日韩国产激情在线| 欧美天天综合色影久久精品| 亚洲精品一区在线观看香蕉| 成人免费视频xnxx.com| 在线播放日韩专区| 亚洲欧美日韩成人| 国产噜噜噜噜噜久久久久久久久| 欧美大片网站在线观看| 4438全国成人免费| 亚洲一区二区国产| 欧美中在线观看| 国产成人中文字幕| www.久久久久久.com| 国外视频精品毛片| 国产一区二区三区三区在线观看| 欧美日韩性视频| 欧美野外wwwxxx| 欧美精品xxx| 色先锋资源久久综合5566| 欧美日韩在线视频首页| 国产精品网站大全| 色噜噜狠狠狠综合曰曰曰88av| 青草热久免费精品视频| 国产精品久久久久久久久久东京| 播播国产欧美激情| 国产一区二区三区视频在线观看| 国产精品久久久久久久美男| 国产一区欧美二区三区| 精品无人区乱码1区2区3区在线| 日韩在线一区二区三区免费视频| 午夜精品一区二区三区在线| 深夜精品寂寞黄网站在线观看| 中文字幕亚洲第一| 91精品久久久久久综合乱菊| 日韩国产在线播放| 国产精品美女无圣光视频| 国产一区深夜福利| 中文欧美日本在线资源| 亚洲大胆人体在线| 综合久久五月天| 国产精品嫩草视频| 亚洲欧美激情一区| 国产精品草莓在线免费观看| 日韩成人av网| 日韩av不卡电影| 日韩亚洲精品电影| 欧美视频免费在线| 久久久国产影院| 久久久爽爽爽美女图片| 亚洲人成77777在线观看网| 美女久久久久久久久久久| 奇米4444一区二区三区| 亚洲人午夜精品免费| 亚洲精品视频二区| 97视频在线观看成人| 久久久亚洲影院你懂的| 国产精品久久色| 日韩在线观看av| 日韩精品在线观看一区| 国产一区深夜福利| 亚洲香蕉成视频在线观看| 亚洲剧情一区二区| 97av在线视频| 最近2019免费中文字幕视频三| 精品自拍视频在线观看| 自拍偷拍亚洲精品| 欧美午夜无遮挡| 久久国产精品久久国产精品| 亲子乱一区二区三区电影| 欧美成在线视频| 日本高清不卡的在线| 国产精品久久久久久亚洲影视| 欧美理论电影在线观看| 深夜成人在线观看| 精品视频久久久久久久|