授權(quán)簽名與SDK
登錄授權(quán)相關(guān)
@
1、什么是授權(quán),如何授權(quán)?
所謂授權(quán),即獲取 Access Token ,應(yīng)用獲取到了Access Token 即意味著取得了用戶的授權(quán),可以替用戶向TOP(開放平臺)請求用戶的隱私信息(如商品、訂單等)。這里的Access Token(Oauth2.0協(xié)議,當(dāng)前應(yīng)用均默認(rèn)該協(xié)議) 即是原來“TOP授權(quán)協(xié)議” 時取到的SessionKey。獲取授權(quán)詳細(xì)方法可點 這里 參考
2、Access Token(SessionKey) 的有效時長只有24小時,如何提高?
“在線訂購”應(yīng)用正式環(huán)境測試階段,Access Token 有效時長固定24小時,無法提高,失效后需重新授權(quán);應(yīng)用上線后(需審核)Access Token有效時長會自動提高(和訂購時長一致),各應(yīng)用授權(quán)有效時長如下:
標(biāo)簽名稱 | 正式測試環(huán)境 | 上線運行中 | 備注 |
在線訂購應(yīng)用 | 24小時 | 訂購時長綁定 | 如應(yīng)用上線后,用戶訂購1年,則Access Token有效1年。更詳細(xì)說明參考這里; |
xTao合作網(wǎng)站 | 24小時 | 24小時 | |
商家后臺系統(tǒng) | 24小時 | 1年 | |
店鋪模塊前臺 | 無session | 無session | |
店鋪模塊后臺 | 24小時 | 訂購時長綁定 | |
新業(yè)務(wù) | 24小時 | 1年 |
@
3、授權(quán)報錯: application callback can not match the redirect_uri (錯誤碼:invalid_client),什么原因?
授權(quán)時請求url 中的uri 值與應(yīng)用回調(diào)地址不一致導(dǎo)致,修改uri 和回調(diào)地址一致即可
4、授權(quán)1001 錯誤(此應(yīng)用不允許當(dāng)前用戶訪問,下圖所示),如何解決?
該錯誤是給應(yīng)用授權(quán)的用戶未在應(yīng)用授權(quán)列表里,登錄開放平臺應(yīng)用“授權(quán)管理”頁面,綁定需授權(quán)用戶即可。只有授權(quán)是小部分人使用的應(yīng)用需要設(shè)置(如商家后臺系統(tǒng)、未上線的在線訂購應(yīng)用)。
![]() |
5、使用code 獲取Access Token時,報如下錯誤,如何處理?
"error": "invalid_client", "error_description": "authorize code qexkqiJRNXJXEPTjPTWYYsK5486529 invalidate,please authorize again."
授權(quán)后回調(diào)地址上取得的code 只能使用一次,如果重復(fù)使用,則報該錯誤。重新授權(quán)或code 重試即可
6、程序如何判斷授權(quán)(Access Token)失效時間?
應(yīng)用程序可記錄用戶授權(quán)時間,再結(jié)合在獲取Access Token 時返回的expires_in ( Access Token有效時間,單位秒)即可判斷。
7、應(yīng)用如何支持子賬號授權(quán)?
1)應(yīng)用授權(quán)管理頁面勾選“支持淘寶子賬號登錄授權(quán)”;2)主賬號給應(yīng)用授權(quán);3)主賬號登錄賣家中心,給子賬號授予應(yīng)用權(quán)限
8、在線訂購應(yīng)用上線用戶訂購后,應(yīng)用程序本身需要做什么操作,或者是怎么去判斷用戶訂購的版本信息等?
用戶(賣家)訂購后在我購買的服務(wù)里能看到應(yīng)用,點"立即使用"就會進(jìn)入授權(quán)頁面(系統(tǒng)自動完成,和正式環(huán)境區(qū)別是,正式環(huán)境需給出授權(quán)URL讓用戶訪問),用戶授權(quán)后TOP會返回CODE 參數(shù)到回調(diào)地址上,ISV 用這個參數(shù)使用POST方式獲取到賣家nick 等信息(詳細(xì)參考這里)。然后再調(diào)用服務(wù)平臺API (點 這里 查看)進(jìn)行判斷,用戶訂購的時長,何種套餐等,之后應(yīng)用再給予相應(yīng)的權(quán)限。
補充:用戶首次訪問(從“賣家中心--我購買的服務(wù)”進(jìn)入),有彈出授權(quán)頁面,授權(quán)后返回CODE給應(yīng)用并據(jù)此取得nick可判斷用戶身份。雖在這之后第二次、第三次訪問應(yīng)用,并未彈出授權(quán)頁面,但CODE仍會返回到回調(diào)地址上
9、有3個淘寶店鋪,現(xiàn)需要在一個應(yīng)用下,取三個店鋪的商品信息,用淘寶taobao.items.inventory.get +sessionkey只能取到一個店鋪的商品信息。這種情況要如何處理?
分別取到3個店鋪的sessionkey,獲取方法可參考 //open.taobao.com/doc/detail.htm?id=101423 。獲取后參考如下例子獲取商品信息:
如店鋪A 下面有appkey (888 ),現(xiàn)想用taobao.items.inventory.get 取店鋪B 的商品 。
A)取店鋪A 商品時,是店鋪A 給888授權(quán)并取得sessionkeyA,然后調(diào)api 時傳人sessionkeyA 獲取店鋪A 商品。
B)取店鋪B商品時,是店鋪B給888授權(quán)并取得sessionkeyB,然后調(diào)api 時,傳人sessionkeyB獲取店鋪B的授權(quán)。
10、授權(quán)常見錯誤及說明
錯誤信息 | 錯誤原因 |
request method must be get/post | 該請求必須用GET或POST方法 |
client_id is empty | client_id(即appkey)不能為空 |
response_type is empty | response_type不能為空 |
redirect_uri is empty | redirect_uri不能為空 |
grant type is empty | grant type不能為空 |
authorize code is empty | authorize code不能為空 |
unsupported response type, the response type must code or token | response type的值必須為code或者token |
redirect_uri is invalidate | redirect_uri 和在開發(fā)者中心注冊的回調(diào)地址不一致 |
the grant type unsupported | grant type值無效 |
authorize reject | 用戶拒絕授權(quán) |
authorize code expire | authorize code失效,請重新授權(quán) |
authorize code xxxx invalidate,please authorize again. | authorize code失效,請重新授權(quán) |
client_secret is invalidate | app secret校驗失敗 |
xss chars included in params, such as <, >, ', " | 請求參數(shù)中帶有以下字符:<, >, ', " |
The Application already Bind with user ids:xxx | 授權(quán)用戶未在開發(fā)者中心“授權(quán)管理”頁面綁定 |
Can not find the client_id:xxxxx | client_id(即appkey)不存在 |
Application need publish | 只有狀態(tài)為“正式環(huán)境測試”和“上線運行中”的應(yīng)用才允許授權(quán) |
Application xxx need purchase | 必須先訂購才能使用 |
app call back is invalidate | 應(yīng)用的回調(diào)地址不合法 |
application callback can not match the redirect_uri | redirect_uri和事先配置的回調(diào)地址不匹配 |
only support http or https | 回調(diào)URL只支持https或http協(xié)議 |
application in black list,access forbidden. | app存在黑名單中 |
The application don't need session | 此應(yīng)用不需要session key,不用刷新session key |
session key num is larger than xx | 有效session key個數(shù)超過上限 在控制臺中的授權(quán)管理里面進(jìn)行設(shè)置。 |
userid is invalidate | userId 不存在 |
login failure | 用戶登錄失敗 |
login sign failure | 無線登錄簽名校驗失敗 |
taobao staff can't accredit | 淘寶小二不允許訪問 |
subuser can't access | 應(yīng)用不支持子賬號訪問 |
parent account forbid this sub account to access app. | 父賬號未授權(quán)此子賬號訪問應(yīng)用 |
parent account forbidden | 父賬號未授權(quán)或授權(quán)已過期 |
refresh token is empty | refresh token為空 |
refresh token is error:xxxx | refresh token內(nèi)容有誤解析失敗 |
refresh token is invalid | refresh token已經(jīng)失效 |
refresh times limit exceed | 刷新次數(shù)超過上限,一個session key一天最多可刷新60次 |
session expire | 當(dāng)前會話已經(jīng)過期,可能用戶瀏覽器暫停太久已經(jīng)超時 |
OAUTH SERVER ERROR:xxxxx | 系統(tǒng)內(nèi)部錯誤,請重試 |
Iossdk params is lack | 缺少ios sdk協(xié)議參數(shù) |
iossdk track_id is invalid | ios sdk協(xié)議參數(shù)track id校驗失敗。建議核對一下app secret |
iossdk params check failed | ios sdk協(xié)議參數(shù)校驗失敗 |
簽名SDK相關(guān)
@
1、什么是簽名(sign),如何生成?
參考文檔 //open.taobao.com/doc/detail.htm?id=101617 (第一部分 sign 相關(guān)內(nèi)容)
2、調(diào)用api 報“Invalid signature”錯誤,什么原因?
1)AppSecret錯誤,如輸入了錯誤的AppSecret 或AppSecret 被重置過
2)生成簽名時的參數(shù) 和 http請求時參數(shù)不一致導(dǎo)致錯誤。
3)簽名方法有誤,建議參考我們提供示例代碼 //open.taobao.com/doc/detail.htm?id=112 。
3、sdk的作用及如何下載?
淘寶開放平臺的SDK是由程序自動化生成的代碼包,其中包含了已經(jīng)開放的API和相應(yīng)的請求、加密、返回解析等一些必要的功能。登錄到“開發(fā)者中心”通過應(yīng)用證書頁面即可下載(下載時選擇權(quán)限對應(yīng)的sdk),詳細(xì)可參考//open.taobao.com/doc/detail.htm?id=101618
4、appkey有api 調(diào)用權(quán)限,為什么下載到的sdk中未包含相應(yīng)的類?
下載sdk時未選擇“權(quán)限對應(yīng)的sdk”導(dǎo)致,進(jìn)入證書頁面重新下載
5、java sdk中如何設(shè)置返回數(shù)據(jù)格式;及sdk是否支持自定義接口方法?
TaobaoClient client = new DefaultTaobaoClient ()此處括號里面加xml 或json 即可指定 ;不支持自定義接口
FAQ
- 關(guān)于此文檔暫時還沒有FAQ