交换令牌js api或php多查询

时间:2012-04-14 08:56:23

标签: facebook token

是否可以通过js api获得用户最长的令牌?

如果不是通过单个查询获取多个用户令牌呢?

我得到这样的令牌;

https://graph.facebook.com/oauth/access_token?client_id=xxx&client_secret=xxx&grant_type=fb_exchange_token&fb_exchange_token=".$u[token]

1 个答案:

答案 0 :(得分:0)

您不能向该网址发出ajax请求,因为ajax请求仅限于您的域(跨域安全策略),但您可能可以使用facebook javascript sdk,但我不确定它是否会工作

类似的东西:

FB.api("oauth/access_token", "get", {
    client_id: xxx,
    client_secret: xxx,
    grant_type: "fb_exchange_token",
    fb_exchange_token: currentToken
}, function(response) {
    console.log(response);
});

即使这样可行,也不应该使用,因为 要在应用程序中包含应用程序机密,并且由于您希望从客户端执行此操作,这意味着该应用程序秘密不再是秘密了。

另外,这样做有什么意义?只要用户与您的应用进行互动,您就可以使用Handling Invalid and Expired Access Tokens中的内容:

  

使用身份验证实现身份验证的桌面Web和移动Web应用程序   Javascript SDK

     

调用FB.getLoginStatus()或确保status:true   调用FB.init()表示下次用户登陆您的   应用程序并签署到Facebook,authResponse对象你   由于那些调用将包含一个新的,有效的传递   访问令牌。

     

在这种情况下,它只是用户使用您的应用程序的行为   它隐式生成一个新的访问令牌。

至于你的另一个问题,facebook api有所谓的Batch Requests,它可以让你在一个请求中做一些api查询,但我不确定它是否适用于相对路径“oauth / access_token “,但欢迎你试试。