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