是否可以通过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]
答案 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 “,但欢迎你试试。