使用JS SDK和Ajax保存用户配置文件信息会抛出代码190

时间:2013-04-23 17:45:01

标签: jquery facebook-graph-api facebook-javascript-sdk facebook-php-sdk

我在网站上使用Facebook Connect 我登录用户。我要求使用publish_stream,user_about_me和其他权限

使用JS SDK FB.login 功能,我检查响应。 authResponse 对象,然后通过 jQuery Ajax 将以下数据发布到单独的用于处理的php文件:

  • response.authResponse.accessToken
  • response.authResponse.userID

process.php文件通过$ _POST获取这些参数,并将uid,token,name等保存到数据库中。

  

https://graph.facebook.com/ $ UID?=的access_token $令牌

然后在同一个文件中我尝试将他的用户令牌换成扩展的

  

https://graph.facebook.com/oauth/access_token?client_id= $的appid&安培; client_secret = $ appsecret&安培; grant_type = fb_exchange_token&安培; fb_exchange_token = $令牌

我不知道出了什么问题,但我得到以下

code 190

有什么方法可以解决这个问题吗?

由于

2 个答案:

答案 0 :(得分:0)

如果您的$ token被验证有效,那么您的$ appid或$ appsecret变量必须设置不正确。

打印出整个字符串并验证appId和appSecret是否应该是什么。

请注意,如果您在交换访问令牌之前“手动”退出Facebook,则(短期)令牌将失效,令牌交换将失败。

答案 1 :(得分:0)

一个简单的解决方案可能是在php文件中使用PHP SDK:

https://github.com/facebook/facebook-php-sdk

我猜您使用AJAX来调用php文件,因此您可能需要使用PHP SDK的“setAccessToken”函数设置Access Token。之后,使用“setExtendedAccessToken”,不需要自己完成所有这些工作,PHP SDK是官方的。