【问题标题】:Facebook Getting Correct Access TokenFacebook 获取正确的访问令牌
【发布时间】:2012-05-27 03:55:31
【问题描述】:

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

例如,我试图通过以下方式获得共同的朋友:

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);

}

但这不起作用,因为令牌无效,虽然如果我使用在Graph API Explorer 中找到的访问令牌,它可以工作,但这个令牌变化很大。

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

【问题讨论】:

    标签: php facebook api


    【解决方案1】:

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

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

    使用javascript sdkclient side authentication flow 为登录用户生成短期令牌,并且可以使用this new endpoint 将其扩展到长期令牌。 server side flow 还产生长期存在的令牌。

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

    【讨论】:

    • 那么https://graph.facebook.com/oauth/access_token?client_id= 等获得了应用令牌?获取用户令牌的唯一方法是虽然 javascript 你不能使用类似上面的东西来做到这一点?
    • 是的,它给你一个应用令牌,至于用户令牌你也可以使用服务器端的身份验证过程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多