我在请求访问令牌时从Facebook收到400错误请求错误。我的return_uri包含一个导致问题的查询字符串参数。我编写了return_uri但我仍然得到了错误。任何人都可以帮我这个吗?
以下是我发送给Facebook的请求:
“https://graph.facebook.com/oauth/access_token?client_id=IDb&client_secret=SECRET&redirect_uri=http%3a%2f%2fexample.com%2fOAuthHttpHandler.ashx%3fReturnUrl%3d%2fpage.aspx&码= CODE“
我收到“验证验证码时出错”。错误信息。
我已经做了一点挖掘,发现下面的redirect_uri工作正常:
“http://example.com/OAuthHttpHandler.ashx?ReturnUrl=page.aspx”
但如果我通过“/secure/page.aspx”的返回网址验证失败。我试过编码正斜杠但没有运气。
答案 0 :(得分:5)
不幸的是,Facebook Oauth实现不能很好地处理return_uri查询字符串中的url参数,即使它们被正确编码也是如此。 fb开发人员论坛中有几个讨论此问题的主题:
http://forum.developers.facebook.net/viewtopic.php?pid=237845 http://forum.developers.facebook.net/viewtopic.php?pid=239866 http://forum.developers.facebook.net/viewtopic.php?pid=255231
在修复它们之前,你必须使用另一种传递状态的方法:session,cookie或在网址中构建一个简单的页面特定标识符。
答案 1 :(得分:2)
经过几个小时的搜索,我终于找到了一个很好的解决方案,对facebook access_token请求返回"错误请求400"。 return_uri param发送到" https://graph.facebook.com/oauth/access_token"必须与发送给https://graph.facebook.com/oauth/authorize"
的人完全相同答案 2 :(得分:-1)
当我向Facebook发送短信时,我所做的只是用破折号替换斜线。然后在回调中,再次用斜线替换破折号!