【问题标题】:How can I get my facebook personal profile posts using getAccessToken()?如何使用 getAccessToken() 获取我的 Facebook 个人资料帖子?
【发布时间】:2014-01-19 15:43:05
【问题描述】:

我实际上想做的是从我的个人 facebook 个人资料页面(这不是粉丝页面)检索我的帖子/状态并将它们显示在我的网站上。另请注意,将访问我的网站的每个用户都应该能够通过与身份验证或类似方式无关的方式查看我的状态。这是需要在服务器端生成的东西。

我知道您可以从https://graph.facebook.com/MY_PROFILE_ID/feed?access_token=ACCESS_TOKEN 之类的 URL 中检索 JSON 字符串,因为我在 facebook 开发人员(Graph API Explorer)页面上进行了尝试,这正是我所需要的。

问题是当我从 Graph API Explorer 生成访问令牌时,我可以选择权限,它会根据选择的权限分别生成令牌,例如 user_status、status_update 等。

现在我想通过使用 PHP-SDK 来实现这一点,但我不知道如何生成与我在 Graph API Explorer 中生成的访问令牌相同的访问令牌。

执行此操作的基本方法是调用 getAccessToken(),如下所示。问题是,当我使用从这个简单方法生成的令牌时,返回的 JSON 字符串只会显示我的基本信息。

$config = array(
  'appId' => 'MY_APP_ID',
  'secret' => 'MY_APP_SECRET',
);

$facebook = new Facebook($config);
$ACCESS_TOKEN = $facebook->getAccessToken();

例如,我如何添加权限?我应该在某处分配参数吗?我花了很多时间阅读 facebook API 文档和其他一些论坛,但没有找到我需要的答案。

最后,如果我获得了正确的访问令牌,那么我将简单地检索 JSON 字符串并使用我需要的内容对其进行解析。

谢谢。

【问题讨论】:

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


    【解决方案1】:

    您需要在代码中添加权限才能使用 fb js sdk 在范围内添加登录权限,如下例所示:

    $("#login").on('click',function(){
     FB.login(function(response){
     console.log(response);
     },{scope: 'email,manage_pages,read_insights'});
    });
    

    或在 php fb sdk 中的下一个形式:

    <?php
    require 'server/fb-php-sdk/facebook.php';
    
    $app_id = 'APP_ID';
    $app_secret = 'APP_SECRET';
    $app_namespace = 'APP_NAMESPACE';
    $app_url = 'https://apps.facebook.com/' . $app_namespace . '/';
    $scope = 'email,publish_actions';
    
    // Init the Facebook SDK
    $facebook = new Facebook(array(
         'appId'  => $app_id,
         'secret' => $app_secret,  
    ));
    
    // Get the current user
    $user = $facebook->getUser();
    
    // If the user has not installed the app, redirect them to the Login Dialog
    if (!$user) {
        $loginUrl = $facebook->getLoginUrl(array(
        'scope' => $scope,
        'redirect_uri' => $app_url,
        ));
    
        print('<script> top.location.href=\'' . $loginUrl . '\'</script>');
     }
           ?>
    

    添加权限最重要的是这部分:

            $scope = 'email,publish_actions';
    

    您可以在此链接中找到有关扩展权限的所有信息

    https://developers.facebook.com/docs/reference/login/extended-permissions

    【讨论】:

    • 嗨。但是你提供的这个解决方案根本不是我需要的。我想要的是在我的个人网页中检索我的个人 Facebook 个人资料状态并最终显示,比如说最近的 5 个。就是这样。没有其他用户的身份验证或类似的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 2018-09-18
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多