授權簽名與SDK
登入授權相關
@
1、什麼是授權,如何授權?
所謂授權,即獲取 Access Token ,應用程式獲取到了Access Token 即意味著取得了用戶的授權,可以替用戶向TOP(開放平台)請求用戶的隱私資訊(如商品、訂單等)。這裡的Access Token(Oauth2.0協議,目前應用程式皆預設該協定) 即是原來「TOP授權協定」 時取到的SessionKey。取得授權詳細方法可點 這裡 參考
2、Access Token(SessionKey) 的有效時長只有24小時,如何提升?
「線上訂購」應用正式環境測試階段,Access Token 有效時長固定24小時,無法提高,失效後需重新授權;應用上線後(需審核)Access Token有效時長會自動提高(並訂購時長一致),各應用授權有效時長如下:
標籤名稱 | # 正式測試環境 | 上線運行中 | 備註 |
備註 | |||
線上訂購應用程式 | 24小時 | 訂購時間綁定 | |
如應用程式上線後,用戶訂購1年,則Access Token有效1年。更詳細說明參考這裡; | xTao合作網站 | 24小時 | |
# 24小時 | # 商家後台系統 |
@
3、授權報錯: application callback can not match the redirect_uri (錯誤碼:invalid_client),什麼原因?
授權時請求url 中的uri 值與應用回呼位址不一致導致,修改uri 和回呼位址一致即可
4、授權1001 錯誤(此應用程式不允許目前用戶訪問,下圖所示),如何解決?
此錯誤是給應用程式授權的使用者未在應用程式授權清單裡,登入開放平台應用「授權管理」頁面,綁定需授權使用者即可。只有授權是小部分人使用的應用程式需要設定(如商家後台系統、未上線的線上訂購應用程式)。
5、使用code 取得Access Token時,報如下錯誤,如何處理?
"error": "invalid_client", "error_description": "authorize code qexkqiJRNXJXEPTjPTWYYsK5486529 invalidate,please authorize again."
授權後回呼位址上取得的重複使用 codehorize again."
授權後回呼地址上取得的重複 code報該錯誤。重新授權或code 重試即可
6、程式如何判斷授權(Access Token)失效時間?
應用程式可記錄使用者授權時間,再結合在取得Access Token 時傳回的expires_in ( Access Token有效時間,單位秒)即可判斷。
7、應用程式如何支援子帳號授權?
1)應用程式授權管理頁面勾選「支援淘寶子帳號登入授權」;2)主帳號給應用程式授權;3)主帳號登入賣家中心,授予子帳號應用程式權限
#8、線上訂購應用程式上線用戶訂購後,應用程式本身需要做什麼操作,或者是怎麼去判斷用戶訂購的版本資訊等?
用戶(賣家)訂購後在我購買的服務裡能看到應用,點"立即使用"就會進入授權頁面(系統自動完成,和正式環境區別是,正式環境需給出授權URL讓使用者存取),使用者授權後TOP會傳回CODE 參數到回呼位址上,ISV 用這個參數使用POST方式取得到賣家nick 等資訊(詳細參考這裡)。然後再呼叫服務平台API (點 這裡
查看)進行判斷,用戶訂購的時長,何種套餐等,之後應用再給予對應的權限。
補充:使用者首次造訪(從「賣家中心--我購買的服務」進入),有彈出授權頁面,授權後返回CODE給應用程式並據此取得nick可判斷使用者身分。雖然在這之後第二次、第三次訪問應用,並未彈出授權頁面,但CODE仍會返回到回調地址上
9、有3個淘寶店鋪,現需要在一個應用下,取三個店舖的商品訊息,用淘寶taobao.items.inventory.get sessionkey只能取到一個店舖的商品資訊。這種情況要如何處理?
分別取到3間店舖的sessionkey,取得方法可參考 //open.taobao.com/doc/detail.htm?id=101423 。取得後參考下列範例取得商品資訊:
如店家A 下方有appkey (888 ),現想用taobao.items.inventory.get 取店舖B 的商品 。
A)取店舖A 商品時,是店舖A 給888授權並取得sessionkeyA,然後調api 時傳人sessionkeyA 取得店鋪A 商品。
B)取店舖B商品時,是店舖B給888授權並取得sessionkeyB,然後調api 時,傳人sessionkeyB取得店舖B的授權。
10、授權常見錯誤及說明
錯誤訊息 | 錯誤原因 |
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 和在開發者中心註冊的回呼位址不一致 |
the grant type unsupported # | grant type值無效 |
authorize reject | 用戶拒絕授權 |
authorize code expire | authorize code#失效,請重新授權 |
authorize code xxxx invalidate,please authorize again. | ##authorize code失效,請重新授權 |
client_secret is invalidate | ##app secret#已校驗失敗 |
xss chars included in params, such as <, >, ', " | #請求參數中帶有以下字元:<, >, ', " |
The Application already Bind with user ids:xxx | #授權使用者未在開發者中心「授權管理」頁面綁定# |
Can not find the client_id:xxxxx | client_id(即appkey)不存在 |
#Application need publish | #只有狀態為「正式環境測試」和「上線運行中」的應用程式才允許授權 |
##Application xxx need purchase | #必須先訂購才能使用 |
app call back is invalidate | 套用的回呼位址不合法 |
application callback can not match the redirect_uri | redirect_uri |
#############################################################################################################################################4 ###和事先配置的回呼位址不符#########################only support http or https####################################################################### ########回呼######URL######只支援#######https######或#####http##### #協定###### | |
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個數超過上限 在控制台中的授權管理裡面進行設定。 # |
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. | 父帳號未授權此子帳號存取應用 |
#parent account forbidden | |
| 父帳號未授權或授權已過期####refresh token is empty############ #######refresh token######為空####### |
refresh token is error:xxxx | refresh token#內容有誤解析失敗 |
refresh token is invalid | refresh token已經失效 |
#refresh times limit exceed | #刷新次數超過上限,一個session key一天最多可刷新60次 |
session expire | 目前會話已經過期,可能使用者瀏覽器暫停太久已經逾時 |
OAUTH SERVER ERROR:xxxxx | 系統內部錯誤,請重試 |
#Iossdk params is lack | #缺少ios sdk協定參數 |
## #################iossdk track_id is invalid#################ios sdk#######協定參數# #####track id######校驗失敗。建議核對一下######app secret###### | |
iossdk params check failed | ios sdk協議參數校驗失敗 |
簽章SDK相關
##@
##1、什麼是簽名(sign),如何產生?
參考文件//open.taobao.com/doc/detail.htm?id=101617 (第一部分sign 相關內容)
2、呼叫api 封包“Invalid signature”錯誤,什麼原因?
1)AppSecret錯誤,如輸入了錯誤的AppSecret 或AppSecret 被重置過
2)產生簽章時的參數 和 http請求時參數不一致導致錯誤。
3)簽章方法有誤,建議參考我們提供範例程式碼 //open.taobao.com/doc/detail.htm?id=112 。
3、sdk的作用及如何下載?
淘寶開放平台的SDK是由程式自動化產生的程式碼包,其中包含了已經開放的API和相應的請求、加密、返回解析等一些必要的功能。登入「開發者中心」透過應用程式憑證頁面即可下載(下載時選擇權限對應的sdk),詳細可參考//open.taobao.com/doc/detail.htm?id=101618
#4、appkey有api 呼叫權限,為什麼下載到的sdk中未包含對應的類別?
5、java sdk中如何設定回傳資料格式;以及sdk是否支援自訂介面方法?
- #關於此文件暫時還沒有FAQ