淘寶開放平台開發文檔 / 授权签名与SDK

授权签名与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小时 
 商家后台系统 24小时 1年 
 店铺模块前台 无session 无session 
 店铺模块后台 24小时 订购时长绑定 
 新业务24小时 1年 

@
3、授权报错: application callback can not match the redirect_uri (错误码:invalid_client),什么原因?
授权时请求url 中的uri 值与应用回调地址不一致导致,修改uri 和回调地址一致即可
 
4、授权1001 错误(此应用不允许当前用户访问,下图所示),如何解决?

该错误是给应用授权的用户未在应用授权列表里,登录开放平台应用“授权管理”页面,绑定需授权用户即可。只有授权是小部分人使用的应用需要设置(如商家后台系统、未上线的在线订购应用)。

T1FKdYFslmXXb1upjX.jpg


5、使用code 获取Access Token时,报如下错误,如何处理?
"error": "invalid_client",  "error_description": "authorize code qexkqiJRNXJXEPTjPTWYYsK5486529 invalidate,please authorize 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

该请求必须用GETPOST方法

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和事先配置的回调地址不匹配

only support http or https

回调URL只支持httpshttp协议

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中未包含相应的类?
下载sdk时未选择“权限对应的sdk”导致,进入证书页面重新下载


5、java sdk中如何设置返回数据格式;及sdk是否支持自定义接口方法?
TaobaoClient client = new DefaultTaobaoClient ()此处括号里面加xml 或json 即可指定 ;不支持自定义接口

FAQ

  • 关于此文档暂时还没有FAQ