0

是否可以通过 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]

4

1 回答 1

0

您不能向该 url 发出 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);
});

即使这可行,它也不是您应该使用的东西,因为您必须在请求中包含应用程序密码,并且由于您想从客户端这样做,这意味着应用程序密码将不再是一个秘密.

另外,这样做有什么意义?只要用户正在与您的应用程序交互,您就可以简单地使用它在处理无效和过期访问令牌中的状态:

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

调用 FB.getLoginStatus() 或确保 status: true 在您调用 FB.init() 时设置意味着下次用户登陆您的应用程序并登录 Facebook 时,您将通过这些调用传递 authResponse 对象将包含一个新的、有效的访问令牌。

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

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

于 2012-04-14T10:37:33.390 回答