前几天发现淘宝开放平台API突然无法调用了,一直在提示出错,提示的错误信息为:Invalid session。
众所周知淘宝开放平台的API接口调用需要三个Key:appKey(合作方标识), secretKey(合作方请求加密密钥), sessionKey(合作方请求接口会话标识)。
这三个Key必须都正确才能请求成功。那么这个错误就很明显了,肯定是sessionKey过期了。因为淘宝对于每个接口都有一个sessionKey,就相当于PHP的session一样。只有sessionKey是对的才有权限访问接口。不同的接口的sessionKey的失效时间不一样。
所以这个问题的原因是上架后台应用接口的sessionKey失效了。那问题来了,如何获取最新的sessionKey呢?
方法如下:
1、访问 http://my.open.taobao.com/auth/authorize.htmappkey=12345678 即可获得授权码;
2、通过http方式访问 http://container.open.taobao.com/containerauthcode={授权码};
3、访问第三步后,浏览器会自动跳转到注册appKey的合作方回调地址上。如果注册appKey的时候这个地址的随便填的话,那页面就会显示404了。不过这个不影响,因为sessionKey已经在浏览器的地址栏里面了。
地址栏中会出现类似这样的字符串:top_appkey=1142&top_parameters=xxx&top_session=xxx&top_sign=xxx&encode=utf-8。字符串里面的top_session值即为SessionKey。
拿到sessionKey之后,更新代码里面的值就OK了。一切搞定。接口又可以正常使用了。