登錄授權(quán)
如果您的應(yīng)用和淘寶開放平臺(tái)對(duì)接時(shí)需要獲取用戶隱私數(shù)據(jù)(如商品、訂單等),為保證用戶數(shù)據(jù)的安全與隱私,您的應(yīng)用需要取得用戶的授權(quán),即獲取訪問用戶數(shù)據(jù)的授權(quán)令牌 Access Token (即原來的SessionKey)。這種情況下,您的應(yīng)用需要引導(dǎo)用戶完成使用淘寶賬號(hào)“登錄授權(quán)”的流程。該流程采用國際通用的OAuth2.0標(biāo)準(zhǔn)協(xié)議作為用戶身份驗(yàn)證與授權(quán)協(xié)議,支持網(wǎng)站、手機(jī)客戶端、桌面客戶端。 目前淘寶OAuth2.0服務(wù)支持采用兩種方式獲取Access Token(授權(quán)令牌),即 Server-side flow 和 Client-side flow ,詳見如下說明。
注:Taobao ID(淘賬號(hào))產(chǎn)品不得用于阿里巴巴集團(tuán)非官方渠道為淘寶買家提供淘寶會(huì)員類服務(wù)(如:訂單查詢、物流追蹤 等),一旦發(fā)現(xiàn)違規(guī)使用,開放平臺(tái)將立即收回該appkey的Taobao ID使用權(quán)限。
特別注意
此文檔描述的授權(quán)頁面僅適用于PC端,如果您的頁面是在手機(jī)淘寶/天貓客戶端中被訪問,請參考這里。如果您的頁面是在H5手機(jī)瀏覽器中被訪問,請參考這里。
一、Server-side flow
此流程要求ISV應(yīng)用有Web Server應(yīng)用,能夠保存應(yīng)用本身的密鑰以及狀態(tài),可以通過https直接訪問淘寶的授權(quán)服務(wù)器。
1、請求入口地址
1)獲取授權(quán)碼(code) 正式環(huán)境:https://oauth.taobao.com/authorize 沙箱環(huán)境:https://oauth./authorize 2)獲取訪問令牌(access_token) 正式環(huán)境:https://oauth.taobao.com/token 沙箱環(huán)境:https://oauth./token
2、授權(quán)操作步驟
此處以正式環(huán)境獲取acccess_token為例說明,如果是沙箱環(huán)境測試,需將請求入口地址等相關(guān)數(shù)據(jù)換成沙箱對(duì)應(yīng)入口地址,操作流程則同正式環(huán)境一致。 實(shí)際進(jìn)行授權(quán)操作時(shí),測試的數(shù)據(jù) client_id、client_secret、redirect_uri 均需要根據(jù)自己創(chuàng)建的應(yīng)用實(shí)際數(shù)據(jù)給予替換,不能拿示例中給出的值直接進(jìn)行測試,以免影響實(shí)際測試效果。下圖為Server-side flow 授權(quán)方式流程圖,以下按流程圖逐步說明。
1)拼接授權(quán)url 拼接用戶授權(quán)需訪問url ,示例及參數(shù)說明如下: https://oauth.taobao.com/authorize?response_type=code&client_id=23075594&redirect_uri=http://www./2/&state=1212&view=web
參數(shù)說明 |
名稱 |
是否必選 |
參數(shù)值 |
參數(shù)釋義 |
client_id |
必選 |
|
等同于appkey,創(chuàng)建應(yīng)用時(shí)獲得。 |
response_type |
必選 |
code |
授權(quán)類型 ,值為code。 |
redirect_uri |
必選 |
可填寫應(yīng)用注冊時(shí)回調(diào)地址域名。 |
redirect_uri指的是應(yīng)用發(fā)起請求時(shí),所傳的回調(diào)地址參數(shù),在用戶授權(quán)后應(yīng)用會(huì)跳轉(zhuǎn)至redirect_uri。要求與應(yīng)用注冊時(shí)填寫的回調(diào)地址域名一致或頂級(jí)域名一致 。 |
state |
可選 |
可自定義,如1212等; |
維持應(yīng)用的狀態(tài),傳入值與返回值保持一致。 |
view |
可選 |
web,可選web、tmall或wap其中一種,默認(rèn)為web。 |
Web對(duì)應(yīng)PC端(淘寶logo)瀏覽器頁面樣式;Tmall對(duì)應(yīng)天貓的瀏覽器頁面樣式;Wap對(duì)應(yīng)無線端的瀏覽器頁面樣式。 |
2)引導(dǎo)用戶登錄授權(quán) 引導(dǎo)用戶通過瀏覽器訪問以上授權(quán)url,將彈出如下登錄頁面。用戶輸入賬號(hào)、密碼點(diǎn)“登錄”按鈕,即可進(jìn)入授權(quán)頁面。
3)獲取code 上圖頁面,若用戶點(diǎn)“授權(quán)”按鈕后,TOP會(huì)將授權(quán)碼code 返回到了回調(diào)地址上,應(yīng)用可以獲取并使用該code去換取access_token; 若用戶未點(diǎn)授權(quán)而是點(diǎn)了“取消”按鈕,則返回如下結(jié)果,其中error為錯(cuò)誤碼,error_description為錯(cuò)誤描述。分別如下圖所示:
說明: 可發(fā)布服務(wù)市場(fuwu.taobao.com)的應(yīng)用,在應(yīng)用上線后,如購買應(yīng)用的用戶,通過"我的服務(wù)--立即使用”訪問(下圖),系統(tǒng)會(huì)自動(dòng)跳到授權(quán)頁面(因此這種方式訪問應(yīng)用的,不需要拼接url),只需注意獲取code即可。同時(shí)返回code時(shí),還會(huì)返回通過state傳遞訂購服務(wù)相關(guān)的信息,類似: state=versionNo:1;itemCode:xxxxx (versionNo 為應(yīng)用版本號(hào)、itemCode為應(yīng)用收費(fèi)代碼)
4)換取access_token
方式1(推薦):
通過taobao.top.auth.token.create api接口獲取access_token(授權(quán)令牌)。api服務(wù)地址參考//open.taobao.com/docs/doc.htm?docType=1&articleId=101617&treeId=1
方式2:
利用linux 的curl 命令 獲取access_token(授權(quán)令牌),如下;對(duì)于應(yīng)用程序,可以參考文檔**示例** 這里的示例代碼。
curl -i -d "code=OxlukWofLrB1Db1M6aJGF8x2332458&grant_type=authorization_code&client_id=23075594& client_secret=69a1469a1469a1469a14a9bf269a14&redirect_uri=http://www./2/ "https://oauth.taobao.com/token
換取access_token請求參數(shù)說明 |
名稱 |
是否必選 |
參數(shù)值 |
參數(shù)釋義 |
client_id |
必選 |
|
等同于AppKey,創(chuàng)建應(yīng)用時(shí)獲得。 |
client_secret |
必選 |
|
等同于AppSecret,創(chuàng)建應(yīng)用時(shí)獲得。 |
grant_type |
必選 |
authorization_code |
授權(quán)類型 ,值為authorization_code |
code |
必選 |
|
上一步獲取code得到 |
redirect_uri |
必選 |
|
可填寫應(yīng)用注冊時(shí)回調(diào)地址域名。redirect_uri指的是應(yīng)用發(fā)起請求時(shí),所傳的回調(diào)地址參數(shù),在用戶授權(quán)后應(yīng)用會(huì)跳轉(zhuǎn)至redirect_uri。要求與應(yīng)用注冊時(shí)填寫的回調(diào)地址域名一致或頂級(jí)域名一致 。 |
state |
可選 |
|
可自定義,如1212等;維持應(yīng)用的狀態(tài),傳入值與返回值保持一致。 |
view |
可選 |
|
可選web、tmall或wap其中一種,Web對(duì)應(yīng)PC端(淘寶logo)瀏覽器頁面樣式;Tmall對(duì)應(yīng)天貓的瀏覽器頁面樣式;Wap對(duì)應(yīng)無線端的瀏覽器頁面樣式。 |
換取access_token返回值示例
{ "w2_expires_in": 0, "taobao_user_id": "263685215", "taobao_user_nick": "%E5%95%86%E5%AE%B6%E6%B5%8B%E8%AF%95%E5%B8%90%E5%8F%B752", "w1_expires_in": 1800, "re_expires_in": 0, "r2_expires_in": 0, "expires_in": 86400, "token_type": "Bearer", "refresh_token": "6200e1909ca29b04685c49d67f5ZZ3675347c0c6d5abccd263685215", "access_token": "6200819d9366af1383023a19907ZZf9048e4c14fd56333b263685215", "r1_expires_in": 1800 } |
換取access_token返回參數(shù)說明 |
Key |
類型 |
示例 |
說明 |
access_token |
string |
2YotnFZFEjr1zCsicMWpAA |
Access token |
token_type |
string |
Bearer |
Access token的類型目前只支持bearer |
expires_in |
number |
10(表示10秒后過期) |
Access token過期時(shí)間 |
refresh_token |
string |
2YotnFZFEjr1zCsicMWpAA |
Refresh token,可用來刷新access_token |
re_expires_in |
number |
10(表示10秒后過期) |
Refresh token過期時(shí)間 |
r1_expires_in |
number |
10(表示10秒后過期) |
r1級(jí)別API或字段的訪問過期時(shí)間; |
r2_expires_in |
number |
10(表示10秒后過期) |
r2級(jí)別API或字段的訪問過期時(shí)間; |
w1_expires_in |
number |
10(表示10秒后過期) |
w1級(jí)別API或字段的訪問過期時(shí)間; |
w2_expires_in |
number |
10(表示10秒后過期) |
w2級(jí)別API或字段的訪問過期時(shí)間; |
taobao_user_nick |
string |
測試賬號(hào) |
淘寶賬號(hào) |
taobao_user_id |
string |
706388888 |
淘寶賬號(hào)對(duì)應(yīng)id |
sub_taobao_user_id |
string |
2343535 |
淘寶子賬號(hào)對(duì)應(yīng)id |
sub_taobao_user_nick |
string |
測試賬號(hào)test:123 |
淘寶子賬號(hào) |
二、Client-side flow
客戶端應(yīng)用授權(quán)方式,適合ISV沒有獨(dú)立的web Server,但是能夠借助瀏覽器或者JS腳本訪問授權(quán)服務(wù)器的應(yīng)用。
1、請求入口地址
正式環(huán)境:https://oauth.taobao.com/authorize 沙箱環(huán)境:https://oauth./authorize
2、授權(quán)操作步驟
以正式環(huán)境獲取acccess_token為例說明,如果是沙箱環(huán)境請使用沙箱數(shù)據(jù)。 同時(shí)在授權(quán)過程中client_id等參數(shù)需要根據(jù)自己創(chuàng)建應(yīng)用的實(shí)際數(shù)據(jù)給予替換,否則無法完成授權(quán)。 下圖為Client-side flow 授權(quán)方式流程圖,以下按流程圖逐步詳細(xì)說明
1)拼接授權(quán)url
https://oauth.taobao.com/authorize?response_type=token&client_id=23075594&state=1212&view=web
參數(shù)說明 |
名稱 |
是否必選 |
參數(shù)值 |
參數(shù)釋義 |
client_id |
必選 |
|
等同于appkey,創(chuàng)建應(yīng)用時(shí)獲得。 |
response_type |
必選 |
token |
授權(quán)類型 ,值為token。 |
state |
可選 |
可自定義,如1212等; |
維持應(yīng)用的狀態(tài),傳入值與返回值保持一致。 |
view |
可選 |
web,可選web、tmall或wap其中一種,默認(rèn)為web。 |
Web對(duì)應(yīng)PC端(淘寶logo)瀏覽器頁面樣式;Tmall對(duì)應(yīng)天貓的瀏覽器頁面樣式;Wap對(duì)應(yīng)無線端的瀏覽器頁面樣式。 |
2)導(dǎo)用戶登錄授權(quán) 這一步同Server-side flow授權(quán)方式,引導(dǎo)用戶訪問授權(quán)url 進(jìn)行授權(quán),如下。
3)獲取access_token 此處上圖頁面點(diǎn)授權(quán)后,TOP會(huì)直接將access_token 返回到淘寶默認(rèn)頁面(和 Server-side flow 先返回code 再換access_token方式不同)此時(shí)可使用JS腳本(if(window.location.hash!=""){alert(window.location.hash)})可以獲取回調(diào)頁面#后面的字段,從而獲取到訪問令牌。
返回參數(shù)示例:
https://oauth.taobao.com/oauth2?view=web#access_token=6101227f5e8c230696ac93a77b3de7daacb154c6ad98106263664221&token_type=Bearer&expires_in=86400&refresh_token=6100627e3f9202c0960a6ab5bfd704939c91635892c70dd263664221&re_expires_in=86400&r1_expires_in=86400&r2_expires_in=86400&taobao_user_id=263664221&taobao_user_nick=%E5%95%86%E5%AE%B6%E6%B5%8B%E8%AF%95%E5%B8%90%E5%8F%B717&w1_expires_in=86400&w2_expires_in=86400&state=1212&top_sign=3429C556FCD3F3FC52547DD31021592F
注: 此處參數(shù)返回除 top_sign 外,同Server-side flow授權(quán)返回參數(shù)相同,這里不再詳細(xì)描述,具體可參考 Server-side flow 里面的說明。 top_sign 是系統(tǒng)生成簽名參數(shù),使用 Client-side flow 方式授權(quán)需要對(duì)該參數(shù)進(jìn)行一致性驗(yàn)證。
4) 驗(yàn)證授權(quán)簽名
即驗(yàn)證返回參數(shù)和 top_sign 是否一致。如上返回參數(shù)中,把井號(hào)之后除 top_sign外所有key和value按照參數(shù)的首字母順序排列,以 key1+value+key2+value....的方式拼接在一起,再在其前后加上的AppSecret(假設(shè)AppSecret=69a1469a1469a1469a14a9bf269a14),然后轉(zhuǎn)成utf-8編碼,接著進(jìn)行md5加密,最后全部轉(zhuǎn)大寫即可。 md5(utf-8:AppSecret+k1+v1+k2+v2+...+kn+vn + AppSecret)。
如以下返回參數(shù),取 # 號(hào)之后的參數(shù)進(jìn)行拼接并首尾加上AppSecret后得到如下結(jié)果: 69a1469a1469a1469a14a9bf269a14access_token6101227f5e8c230696ac93a77b3de7daacb154c6ad98106263664221token_typeBearer expires_in86400refresh_token6100627e3f9202c0960a6ab5bfd704939c91635892c70dd263664221re_expires_in86400r1_expires_in86400 r2expires_in86400taobao_user_id263664221taobao_user_nick%E5%95%86%E5%AE%B6%E6%B5%8B%E8%AF%95%E5%B8%90%E5%8F%B717w1_expires_in86400&w2_expires_in86400&state121269a1469a1469a1469a14a9bf269a14
進(jìn)行md5加密(參考API調(diào)用示例代碼)并轉(zhuǎn)化成大寫后得到:3429C556FCD3F3FC52547DD31021592F ,和top_sign 一致。
退出登錄
退出流程目前只支持web訪問,起到的作用是清除taobao.com的cookie,并不是取消用戶的授權(quán)。在WAP上訪問無效。
一、請求入口地址
1、正式環(huán)境:https://oauth.taobao.com/logoff 2、沙箱環(huán)境:https://oauth./logoff 二、退出操作步驟
拼接退出url(如 https://oauth.taobao.com/logoff?client_id=12304977&view=web)并訪問即可,退出后跳轉(zhuǎn)到淘寶首頁 。
刷新授權(quán)
通過授權(quán)獲取的refresh_token,可用來刷新access token 的r2時(shí)長。 由于r1 或w1 通常同訂購時(shí)長一致,一般不需刷新,w2必須通過重新授權(quán)給予延長,故refresh_token 一般僅用于r2 有效時(shí)長的延長。 操作方法類似獲取access token ,僅請求參數(shù)有區(qū)別,說明如下:
換取access_token請求參數(shù)說明 |
名稱 |
是否必選 |
參數(shù)值 |
參數(shù)釋義 |
client_id |
必選 |
|
等同于AppKey,創(chuàng)建應(yīng)用時(shí)獲得。 |
client_secret |
必選 |
|
等同于AppSecret,創(chuàng)建應(yīng)用時(shí)獲得。 |
grant_type |
必選 |
refresh_token |
授權(quán)類型 ,值為refresh_token |
state |
可選 |
|
可自定義,如1212等;維持應(yīng)用的狀態(tài),傳入值與返回值保持一致。 |
view |
可選 |
|
可選web、tmall或wap其中一種,Web對(duì)應(yīng)PC端(淘寶logo)瀏覽器頁面樣式;Tmall對(duì)應(yīng)天貓的瀏覽器頁面樣式;Wap對(duì)應(yīng)無線端的瀏覽器頁面樣式。 |
相關(guān)說明
一、授權(quán)時(shí)長說明
授權(quán)獲得的 access_token 有效時(shí)長(expires_in )和標(biāo)簽類型(如IT工具、商家后臺(tái)系統(tǒng)等)、狀態(tài)(如正式環(huán)境、上線等)相關(guān)如下。 注:實(shí)際api 調(diào)用時(shí),對(duì)應(yīng)用授權(quán)時(shí)長做了更精確的控制,具體可參考(二、安全等級(jí)說明);另像“第三方IT工具”類應(yīng)用開發(fā)上線后都是發(fā)布在 fuwu.taobao.com上,賣家需要訂購使用,相應(yīng)授權(quán)時(shí)長會(huì)和訂購時(shí)長相同,如購買1個(gè)月,則取得的access_token有效時(shí)長1個(gè)月。
標(biāo)簽名稱 |
正式環(huán)境測試 |
上線運(yùn)行中 |
備注 |
第三方IT工具 |
24小時(shí) |
同訂購時(shí)長 |
申請參考這里 |
商家后臺(tái)系統(tǒng) |
24小時(shí) |
固定時(shí)長1年 |
申請參考這里 |
服務(wù)商后臺(tái)系統(tǒng) |
24小時(shí) |
同訂購時(shí)長 |
申請參考這里 |
店鋪模塊前臺(tái) |
無session |
無session |
已停止接入 |
店鋪模塊后臺(tái) |
24小時(shí) |
同訂購時(shí)長 |
已停止接入 |
新業(yè)務(wù) |
24小時(shí) |
固定時(shí)長1個(gè)月 |
不開放 |
無線買家應(yīng)用 |
24小時(shí) |
24小時(shí) |
已停止接入 |
xTao合作網(wǎng)站 |
24小時(shí) |
24小時(shí) |
已停止接入 |
二、安全等級(jí)說明
為了更加靈活的對(duì)淘寶開放平臺(tái)開放的數(shù)據(jù)進(jìn)行安全管控, 降低用戶數(shù)據(jù)泄露或者被惡意修改的風(fēng)險(xiǎn),推出了安全等級(jí)的概念。 淘寶開放平臺(tái)對(duì)API(或者API字段)及 應(yīng)用分別打了r1、r2、w1、w2 和 0,1,2,3四種安全級(jí)別的標(biāo)記。與 r1、r2、w1、w2對(duì)應(yīng)的是在access token(session key)頒發(fā)時(shí)增加了4個(gè)過期時(shí)間:r1_expires_in、r2_expires_in、w1_expires_in、w2_expires_in。這4個(gè)值分別用來表示此access token 調(diào)用各級(jí)別API(或字段)的有效期,如下:(受安全等級(jí)限制的應(yīng)用有:第三方IT工具、服務(wù)商后臺(tái)系統(tǒng)、店鋪模塊后臺(tái)這3類應(yīng)用;商家后臺(tái)系統(tǒng)和新業(yè)務(wù)這類賣家自用型應(yīng)用暫不受影響。)
安全等級(jí) |
API級(jí)別 |
正式環(huán)境測試 |
上線運(yùn)行中 |
是否可刷新 |
Refresh刷新時(shí)長 |
3級(jí) |
R1 |
24小時(shí) |
同訂購時(shí)長 |
是 |
已上線應(yīng)用與訂購時(shí)長一致,正式環(huán)境測試24小時(shí)有效 |
3級(jí) |
R2 |
24小時(shí) |
同訂購時(shí)長 |
是 |
已上線應(yīng)用與訂購時(shí)長一致,正式環(huán)境測試24小時(shí)有效 |
3級(jí) |
W1 |
24小時(shí) |
同訂購時(shí)長 |
是 |
已上線應(yīng)用與訂購時(shí)長一致,正式環(huán)境測試24小時(shí)有效 |
3級(jí) |
W2 |
24小時(shí) |
同訂購時(shí)長 |
是 |
已上線應(yīng)用與訂購時(shí)長一致,正式環(huán)境測試24小時(shí)有效 |
2級(jí) |
R1 |
24小時(shí) |
同訂購時(shí)長 |
是 |
已上線應(yīng)用與訂購時(shí)長一致,正式環(huán)境測試24小時(shí)有效 |
2級(jí) |
R2 |
24小時(shí) |
72小時(shí) |
是 |
已上線應(yīng)用與訂購時(shí)長一致,正式環(huán)境測試24小時(shí)有效 |
2級(jí) |
W1 |
24小時(shí) |
同訂購時(shí)長 |
是 |
已上線應(yīng)用與訂購時(shí)長一致,正式環(huán)境測試24小時(shí)有效 |
2級(jí) |
W2 |
30分鐘 |
30分鐘 |
否 |
|
1級(jí) |
R1 |
24小時(shí) |
同訂購時(shí)長 |
是 |
已上線應(yīng)用與訂購時(shí)長一致,正式環(huán)境測試24小時(shí)有效 |
1級(jí) |
R2 |
24小時(shí) |
24小時(shí) |
否 |
|
1級(jí) |
W1 |
24小時(shí) |
同訂購時(shí)長 |
是 |
已上線應(yīng)用與訂購時(shí)長一致,正式環(huán)境測試24小時(shí)有效 |
1級(jí) |
W2 |
5分鐘 |
5分鐘 |
否 |
|
0級(jí) |
R1 |
30分鐘 |
30分鐘 |
否 |
|
0級(jí) |
R2 |
0分鐘 |
0分鐘 |
否 |
|
0級(jí) |
W1 |
30分鐘 |
30分鐘 |
否 |
|
0級(jí) |
W2 |
0分鐘 |
0分鐘 |
否 |
|
示例代碼
一、獲取access_token示例
示例代碼均基于sdk實(shí)現(xiàn),sdk下載及使用參考 說明。
1、JAVA 示例
import java.io.IOException; import java.util.HashMap; import java.util.Map; import com.taobao.api.internal.util.WebUtils; //引用top sdk public class open_oauth { public static void main(String[] args) { String url="https://oauth.taobao.com/token"; Map<String,String> props=new HashMap<String,String>(); props.put("grant_type","authorization_code"); /*測試時(shí),需把test參數(shù)換成自己應(yīng)用對(duì)應(yīng)的值*/ props.put("code","test"); props.put("client_id","test"); props.put("client_secret","test"); props.put("redirect_uri","http://www."); props.put("view","web"); String s=""; try{s=WebUtils.doPost(url, props, 30000, 30000); System.out.println(s); }catch(IOException e){ e.printStackTrace();} } } |
2、PHP 示例
<?php /*測試時(shí),需把test參數(shù)換成自己應(yīng)用對(duì)應(yīng)的值*/
$url = 'https://oauth.taobao.com/token'; $postfields= array('grant_type'=>'authorization_code', 'client_id'=>'test', 'client_secret'=>'test', 'code'=>'test', 'redirect_uri'=>'http://www.'); $post_data = ''; foreach($postfields as $key=>$value){ $post_data .="$key=".urlencode($value)."&";} $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); //指定post數(shù)據(jù) curl_setopt($ch, CURLOPT_POST, true);
//添加變量 curl_setopt($ch, CURLOPT_POSTFIELDS, substr($post_data,0,-1)); $output = curl_exec($ch); $httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); echo $httpStatusCode; curl_close($ch); var_dump($output); ?> |
3、.NET 示例
namespace Oauth2._0 { class Program { static void Main(string[] args) { WebUtils webUtils = new WebUtils(); IDictionary<string, string> pout = new Dictionary<string, string>(); pout.Add("grant_type", "authorization_code"); pout.Add("client_id", "test"); pout.Add("client_secret", "test"); pout.Add("code", "test"); pout.Add("redirect_uri", "http://www."); string output = webUtils.DoPost("https://oauth.taobao.com/token", pout); Console.Write(output); Console.ReadLine(); } } } |
二、refresh_token刷新示例
方式1(推薦):
通過taobao.top.auth.token.refresh api接口刷新token。每次刷新后原來refresh_token作廢,都要更新成最新返回的refresh_token用于下次刷新。api服務(wù)地址參考//open.taobao.com/docs/doc.htm?docType=1&articleId=101617&treeId=1
方式2: 以下為基于sdk的java示例,其它語言可參考token獲取方法,是類似的,同時(shí)測試時(shí),需把test參數(shù)換成自己應(yīng)用實(shí)際對(duì)應(yīng)的值。
import java.io.IOException; import java.util.HashMap; import java.util.Map; import com.taobao.api.internal.util.WebUtils; public class test_refresh { public static void main(String[] args) { String url="https://oauth.taobao.com/token"; Map<String,String> props=new HashMap<String,String>(); props.put("grant_type","refresh_token"); props.put("refresh_token","test"); props.put("client_id","test"); props.put("client_secret","test"); String s=""; try{s=WebUtils.doPost(url, props, 30000, 30000); System.out.println(s); }catch(IOException e){ e.printStackTrace(); } } |
以上把responseJson 轉(zhuǎn)化為對(duì)象,或者直接從里面提取access_token字段以及新的刷新令牌 refresh_token返回結(jié)果內(nèi)容示例
{
"w2_expires_in": 0,
"taobao_user_id": "263685215",
"taobao_user_nick": "%E5%95%86%E5%AE%B6%E6%B5%8B%E8%AF%95%E5%B8%90%E5%8F%B752",
"w1_expires_in": 1800,
"re_expires_in": 0,
"r2_expires_in": 0,
"expires_in": 86400,
"token_type": "Bearer",
"refresh_token": "6200e1909ca29b04685c49d67f5ZZ3675347c0c6d5abccd263685215",
"access_token": "6200819d9366af1383023a19907ZZf9048e4c14fd56333b263685215",
"r1_expires_in": 1800
}
|
常見問題
1、授權(quán)獲取token時(shí),appkey是已傳入,仍報(bào):client_id is empty 錯(cuò)誤? 授權(quán)另一關(guān)鍵參數(shù)client_secret錯(cuò)誤,會(huì)導(dǎo)報(bào)該錯(cuò)誤,重點(diǎn)檢查
2、是否一定需要沙箱先進(jìn)行授權(quán)測試?
并不做這樣要求,可以是“先沙箱測試授權(quán),再正式環(huán)境”的方式;也可以直接“正式環(huán)境測試授權(quán)”的方式
3、授權(quán)相關(guān)常用文檔有那些?
- 多店鋪管理:查看
- 快速授權(quán)工具:查看
- 提高安全等級(jí)辦法:查看
- 安全等級(jí)詳細(xì)說明:查看
4、授權(quán)更多問題及錯(cuò)誤碼參考:查看
FAQ
怎樣在淘寶賬號(hào)里授權(quán)API轉(zhuǎn)鏈
|