-1

有什么方法可以通过页面 id 获取任何页面的访问令牌,我应该能够代表管理员在页面上发布?

4

1 回答 1

0

我猜您不想成为客户页面的管理员:

  1. 您可以创建一个页面,以便您的客户登录 Facebook 并向您的应用授予权限。

  2. 然后您可以获得页面访问令牌并将其保存在您的数据库中。

  3. 最后使用该访问令牌以管理员身份直接发布到每个页面,而不是您实际的管理员

引用Facebook 文档

要获取页面访问令牌,您需要首先获取用户访问令牌并请求 manage_pages 权限。获得用户访问令牌后,您就可以通过 Graph API 获得页面访问令牌。

要获取用户访问令牌(假设您已登录到 fbk 并已授予您的应用程序的权限):

    $user = $facebook->getUser();
    if(!$user) {
        $login_url_params = array(
             'scope' => 'publish_stream,read_stream,manage_pages',
             'fbconnect' =>  1,
             'redirect_uri' => 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
        );
        $login_url = $facebook->getLoginUrl($login_url_params);
        //redirect to the login URL on facebook
        header("Location: {$login_url}");
    }

不要忘记获取时间延长的访问令牌

    $facebook->setExtendedAccessToken();
    $access_token = $facebook->getAccessToken();

使用该令牌,您可以通过 API 获取页面令牌:

    $accounts = $facebook->api(
       '/me/accounts',
       'GET',
       array(
          'access_token' => $access_token
       )
    );

$accounts 将是一个关联数组,其中包含您管理的页面的所有信息(包括每个页面的令牌)。要获取知道其 ID 的特定页面的令牌:

    $accounts = $accounts['data'];
foreach($accounts as $account){
    if( $account['id'] == $pagId ){
        //$pagId would be the ID of the page you want to use

        //This is the token of the page with the ID $pagId
        $page_access_token = $account['access_token'],
    }
}
于 2013-09-16T15:45:46.790 回答