获取Facebook页面访问权限 - 令牌

时间:2014-01-26 19:50:10

标签: facebook access-token

我使用以下代码使用PHP将帖子发布到Facebook。我只剩下一个问题...我想知道如何在发布帖子之前为我的页面获取访问令牌,因为访问令牌不是永久性的。

  

function status_update($status_text)
{
    require_once("facebook/facebook.php");

    $config = array();
    $config['pageId'] = 'xxxxxxxxxx';
    $config['appId'] = 'yyyyyyyyyy';
    $config['secret'] = 'zzzzzzzzzzzzz';
    $config['fileUpload'] = false;

    $fb = new Facebook($config);

    $params = array(
      "access_token" => $config['appId'] . "|" . $config['secret'],
      "message" => $status_text,
      "link" => "http://www.pontikis.net/blog/auto_post_on_facebook_with_php",
      "picture" => "http://i.imgur.com/lHkOsiH.png",
      "name" => "How to Auto Post on Facebook with PHP",
      "caption" => "www.pontikis.net",
      "description" => "Automatically post on Facebook with PHP using Facebook PHP SDK. How to create a Facebook app. Obtain and extend Facebook access tokens. Cron automation."
    );

    try
    {
      $ret = $fb->api('/xxxxxxxxxx/feed', 'POST', $params);
      echo 'Successfully posted to Facebook';
    } 
    catch(Exception $e)
    {
      echo $e->getMessage();
    }
}

} ?>

2 个答案:

答案 0 :(得分:1)

我已经建立了一个关于四个月前的Facebook应用程序,因此我不知道是否发生了任何变化。但我会尝试帮助。

当您获得对您管理的页面的访问权限时,您将获得一个非过期的访问令牌,而不是60天,而不是几个小时,而是永久访问令牌。

所以,假设您有一个正常的应用访问令牌,并且您希望获得权限,比如发布到您的页面。您想检查您是否拥有权限,如果没有:

// PHP condition here to show this piece of JS only if user has no permission 'manage_pages'
// see *1
FB.login(function(response) {
    if (response.authResponse) {
        FB.api('/me/permissions?access_token={CURRENT_TOKEN}', function (response) {
            // Do whatever you want here, you have a response
            // For example:
            if (response['data'][0]['manage_pages'] === undefined) {
                // Will refresh if you deny when Facebook modal window appears
                top.location.href = '{SELF_URL}';
            }
        });
    } else {
      // ...
    }
}, {scope: 'manage_pages'});

* 1 - 您可以通过调用->api('/me/permissions?access_token={YOUR_TOKEN}');来检索上述代码段服务器端来检索您的权限

* 2 - 在授权申请获得您的权利时,您还应具有publish_actions publish_stream所要求的初始权利

答案 1 :(得分:0)

按照FB docs中的描述进行操作:

https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens

您可以在Graph Explorer中执行此操作:

https://developers.facebook.com/tools/explorer