一、登录授权相关
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 错误(此应用不允许当前用户访问,下图所示),如何解决?
该错误是给应用授权的用户未在应用授权列表里,登录开放平台应用“授权管理”页面,绑定需授权用户即可。只有授权是小部分人使用的应用需要设置(如商家后台系统、未上线的在线订购应用)。
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. 应用如何支持子账号授权?
详情请查看子账号授权流程介绍(新)
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和事先配置的回调地址不匹配
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),如何生成?
参考文档:点击查看(第一部分 sign 相关内容)。
2. 调用api 报“Invalid signature”错误,什么原因?
1)AppSecret错误,如输入了错误的AppSecret 或AppSecret 被重置过。
2)生成签名时的参数 和 http请求时参数不一致导致错误。
3)签名方法有误,建议参考我们提供示例代码 点击查看。
3. sdk的作用及如何下载?
淘宝开放平台的SDK是由程序自动化生成的代码包,其中包含了已经开放的API和相应的请求、加密、返回解析等一些必要的功能。登录到“开发者中心”通过应用证书页面即可下载(下载时选择权限对应的sdk),详细可参考点击查看。
4. appkey有api 调用权限,为什么下载到的sdk中未包含相应的类?
应用申请到新的API权限后需要重新生成并下载SDK。
5. java sdk中如何设置返回数据格式;及sdk是否支持自定义接口方法?
TaobaoClient client = new DefaultTaobaoClient ()此处括号里面加xml 或json 即可指定 ;不支持自定义接口。