基本问题:即使用户不在,我希望我的应用程序能够调用有关授权用户的 Facebook 图形 api。
例如,我希望用户 (A) 授权该应用程序,然后我希望用户 (B) 能够使用该应用程序查看有关用户 (A) 的朋友的信息。具体来说:“工作”领域。是的,我正在请求那些扩展权限(user_work_history
、friends_work_history
等)。目前我的应用程序可以访问登录用户的朋友工作历史记录,但不能访问该应用程序其他用户的任何朋友工作历史记录。
这是我已经知道的:
- 添加
offline_access
到范围参数是旧方法,它不再有效。 - 新方法是使用“长期”访问令牌,描述这里。这些持续60天。
我需要交换一个普通的访问令牌来获取新的扩展令牌。FB 文档说:
https://graph.facebook.com/oauth/access_token?
client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=EXISTING_ACCESS_TOKEN
以下是我不知道的(希望您能告诉我): 如何使用 Facebook PHP SDK 获取扩展(又名“长期”)访问令牌?目前,我的代码如下所示:
$facebook->getAccessToken();
有没有这样的事情:
$facebook->getExtendedAccessToken();
如果不是,这是我应该做的吗?
$accessToken = $facebook->getAccessToken();
$extendedAccessToken = file_get_contents("https://graph.facebook.com/oauth/access_token?
client_id={$appId}&
client_secret={$secret}&
grant_type=fb_exchange_token&
fb_exchange_token={$accessToken}"
);
我已经尝试过了,但它不起作用。我收到此错误:
Warning: file_get_contents(https://graph.facebook.com/oauth/access_token? client_id=#######& client_secret=#########& grant_type=fb_exchange_token& fb_exchange_token=##########) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in /...
如果我切换到 FQL 而不是图形 api,它的工作方式会有什么不同吗?我已经多次阅读 Facebook 文档,但是 PHP sdk 没有完整的文档记录,我找不到任何关于它应该如何工作的示例。