MAking API请求始终出现“token_rejected”错误

时间:2011-05-11 08:34:56

标签: oauth yahoo

我开发了OAuth组件,并完成了Yahoo的OAuth流程,获得了oauth_token。

但是当我调用yahoo API(如contact或YQL)时,我总是收到“Token_Rejected”错误消息。

HTTP 401

签名:6fR3VdygGrRCO+WrS6tlD3hjHMI=

base_string:

GET&http%3A%2F%2Fsocial.yahooapis.com%2Fv1%2Fuser%2FMOMJS2M2KSMQKT2D
Q4O7NS4JFU%2Fprofile%2Fusercard&oauth_consumer_key%3Ddj0yJmk9ZmZzUFVQblZzM1JVJmQ
9WVdrOU9GbFNRMUJuTmpRbWNHbzlOVFUyTWpRNU9EWXkmcz1jb25zdW1lcnNlY3JldCZ4PTJk%26oaut
h_nonce%3D2366072fe9829333b98eb6f2a7539afa%26oauth_signature_method%3DHMAC-SHA1%
26oauth_timestamp%3D1305099596%26oauth_token%3DA%3D4cnEo.njj1_C6XtkvR3o5x3vOYqrN
hHk3sBFh76pPtcKA07WF69OADx8zU7o0dPSRauN77UIBw.5bEk5opw15A8SSemxquErvhhHPuAhtm0SB
UuGBOSMxapwBdU1.E4oeQQMXIvKRFhy81EVbIDclBcxzeG.y.eEUdNFDkp_suVAKko.i6Tazpbfkqa1C
__7BAQO5m74CIsalgwyyI8z99eITPlzq_llb7CZzhoWJTVzVAVH_hoU2jBbjSwP00AGB.ovXqT0Ayf0.
WHG2v7hhFhVh.MEx6H0oa8rgpUSZr68dViiIPLfV6G.fGCF3GSnE4uVNiDWM2.x4Lf37slpGWqmjUTtX
B8UVlTQU0auc_YCbGC9wSiUHePWEhpzkgQ6lf.G0mZ9VJ5I_9jbZzlJD52ffUoMDVs97qEeT4CRRa.0p
hwt1dWx16pV.cmhRXSHUqCkDXVmCGpZI5rXD6fR2QoCoQNOOf6e3rGqaz1cF_kY4BgKfKWVa_RF.peOg
PIaUYF1L9CFtG2Zj1HkyhgzTcYbJZemoxO3WtOD8PHM3cUGJWvGcAibfDf1Ntu6BmsQa_aZfjZ11ou8n
F1kjeFsf9wUpHOvGS_qOtaUT8b5rV8CXd.mcZyLghscWIOy339QjgZ6nz2PVchf2P2Rd0JhbNR_OzHWb
5l9LBBOH9RM5TkHm7N2HSdxaSxSFA6rLU5gguZU7xFEnQ44o7hMCbyfL4SL6VdOz9hIuTjYh8GHHYTM0
iIU.O.Gh_tNPjLVZ8j6T2G2W1L5JgCYz8K_D7bn8EHL9FNwffqZQgmtXqjqpIFATcQ.h.91zP_uc4mij
gzvwnfE8n80N7hZKVA-%26oauth_version%3D1.0

回应:

<?xml version='1.0' encoding='UTF-8'?>
<yahoo:error xmlns:yahoo='http://yahooapis.com/v1/base.rng'
xml:lang='en-US'>
<yahoo:description>Please provide valid credentials. OAuth oauth_problem="toke
n_rejected", realm="yahooapis.com"</yahoo:description>
</yahoo:error>

我非常确定此访问令牌未过期。

如何解决此问题? 感谢。

3 个答案:

答案 0 :(得分:1)

我已经解决了这个问题,原因是我错过了查询字符串,当我将查询字符串编码成基本字符串时,这个问题已经解决了。

答案 1 :(得分:1)

对于将来遇到此问题的任何人:如果您继续使用PHP从https://api.login.yahoo.com/oauth/v2/get_token获取“令牌被拒绝”。然后,如果与您的流程相关,请确保在拨打此电话之前您正在访问令牌上调用urldecode。

答案 2 :(得分:0)

如果您将访问令牌存储在表中,然后使用该表中的访问令牌调用API,那么如果您将该列设置为字符串,它将缩短为255个字符。我只是将它从字符串更改为文本并存储它。

当然,如果您将访问令牌存储在表中然后进行调用。我得到了完全相同的错误信息,一旦我确定它有效。

希望我能提供帮助,

戈兰