是否有任何方式的Facebook页面访问令牌的页面ID?

时间:2013-09-13 22:20:11

标签: facebook-graph-api facebook-fql facebook-access-token

我有什么方法可以获取任意页面ID的访问令牌,我应该能够代表管理员在页面上发帖吗?

1 个答案:

答案 0 :(得分:0)

我猜你不想成为客户网页的管理员:

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

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

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

  4. 引用Facebook documentation

      

    要获取页面访问令牌,您需要从获取用户开始   访问令牌并要求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'],
        }
    }