【问题标题】:Getting an access token for a local Facebook script获取本地 Facebook 脚本的访问令牌
【发布时间】:2012-12-09 19:45:14
【问题描述】:

我将通过提到这是我第一次使用 Facebook 的 API 来开始这个问题。

我在自己的 PC 上有一个脚本,它是用 WAMP 执行的。它从 Facebook 的 Graph API 获取数据,当手动从 Graph API Explorer 获得访问令牌时,获取特定组的提要。

我希望我的脚本请求访问令牌,然后只需使用 file_get_contents 请求 json 字符串。我需要访问令牌才能获得所有可用权限。

我应该怎么做才能使接下来的步骤有效?

  1. 打开我的 PHP 文件。 (已经存在)
  2. 脚本将要求提供访问令牌。
  3. 它将打印https://graph.facebook.com/GROUP_ID/feed?=access_token=ACCESS_TOKEN的内容

【问题讨论】:

    标签: php facebook facebook-graph-api facebook-php-sdk facebook-access-token


    【解决方案1】:

    您正在寻找服务器端身份验证。关于这个主题有detailed documentation

    【讨论】:

    • 登录对话框是必须的吗?
    • 如果您在网站中集成fb-api,则必须登录。否则不会。
    • 例如,我不能提供我的 fb 电子邮件和密码吗?使流程自动化。
    • 不,这是不可能的。 Facebook 不希望应用程序处理密码,这是一个安全风险。您必须使用该对话框。
    【解决方案2】:
    1. 如果您正在开发 facebook 应用程序,则无需再次登录 facebook。 (PHP 和 Javascript 的代码 sn-ps,您需要使用它。)

      [PHP]

      你可以通过在-上执行Http GET请求来获取access_token -

      https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials
      

      更多详情:login as app

      [Javascript]

      FB.getLoginStatus(function(response) 
      {
        if (response.status === 'connected') 
        {
            var uid = response.authResponse.userID;
            var accessToken = response.authResponse.accessToken;
        } 
        else if (response.status === 'not_authorized') 
        {
           // the user is logged in to Facebook, 
           // but has not authenticated your app
        } 
        else 
        {
           // the user isn't logged in to Facebook.
        }
      });
      

      更多详情:getLoginStatus

    2. 如果您将 fb 与您的网站集成,您需要先登录,然后在响应中您可以获得访问令牌。

      阅读:Login Architecture

      [PHP](难度:高)

      阅读:server-side-login

      [Javascript](难度:低)

      FB.login(function(response) 
      {
          if (response.authResponse)
          {
              console.log('Welcome!  Fetching your information.... ');
              var access_token = response.authResponse.accessToken;
          } 
          else 
          {
              console.log('User cancelled login or did not fully authorize.');
          }
       }); 
      

      更多详情:FB.Login

    【讨论】:

    • 我也向发布者询问了另一个答案——我是否能够通过提供我自己的用户详细信息来自动化获取 OAuth 访问令牌的过程?
    • 你为什么想要那个,你到底想做什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2012-01-02
    • 2016-07-27
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多