【问题标题】:Obtain Facebook Page Access-Token获取 Facebook Page Access-Token
【发布时间】:2014-01-29 19:09:25
【问题描述】:

我正在使用以下代码使用 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();
    }
}

} ?>

【问题讨论】:

标签: facebook access-token


【解决方案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}'); 来检索您的权限以用于检查上述 sn-p 服务器端

*2 - 您还应该拥有publish_actions publish_stream 的初始权限,也许是在授权应用程序拥有您的权限时要求的

【讨论】:

  • 如果此答案不能满足您的需求,我可以提供更多帮助
【解决方案2】:

按照 FB 文档中的说明进行操作:

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

您可以在图形资源管理器中执行此操作:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 2013-09-13
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多