Facebook获得正确的访问令牌


Facebook Getting Correct Access Token

长访问令牌和短访问令牌有什么区别?

例如,我正在尝试使用以下方法获得共同的朋友:

https://graph.facebook.com/$uid1/mutualfriends/$uid2?access_token=$token

并使用以下函数获取访问权限:

function getAccessToken(){
    $url ='https://graph.facebook.com/oauth/access_token?client_id='.FB_APP_ID.'&client_secret='.FB_SECRET_ID.'&grant_type=client_credentials';
    $info = file_get_contents($url);
    $clean = clean_up_data($info);
    return($clean);

}

但这不起作用,因为令牌无效,尽管如果我使用在图形 API 资源管理器中找到的访问令牌,它可以工作,但此令牌更改了很多。

那么,您将如何获取有效的令牌以允许访问共同的朋友呢?

使用问题中的代码获得的令牌是应用令牌,不能用于获取用户的好友。与用户令牌不同,应用令牌不会过期。

用户令牌可以是短期的,也可以是长期的,具体取决于您获取它们的方式。短期代币在几个小时内过期,但长期代币仅在 60 天后过期。

短期令牌是使用 JavaScript SDK 和客户端身份验证流为登录用户生成的,可以使用此新端点扩展到长期令牌。服务器端流还会生成长期令牌。

应用获取用户访问令牌后,它会代表登录用户查询数据。您可以使用资源管理器工具进行检查,方法是选择右上角的应用程序,然后单击"获取访问令牌"按钮,在允许应用程序和权限后,您将看到"访问令牌"字段具有访问令牌,您可以开始发出 api 请求。