首页 > 解决方案 > 如何在我授予 php API 权限的 facebook 页面和组上发布

问题描述

朋友们,我有一个围绕着我旋转的问题。我正在学习使用 Facebook API,我有 24 小时使用它,我已经了解它是如何工作的,我感到有点抱歉,因为实际上很容易问题是我不太懂英语,所以很难我。

具体问题是:我用Facebook登录时,如何自动在选定的组和页面中发布?例如,在我管理的以下组中,我只选择一个。

在此处输入图像描述

问题是,当组发布时,组 id 是必需的,使用此代码段。

$response = $this->fb->post('/123456789/feed', $linkData, $accessToken);

所以?具体问题,我如何获得我授予权限的组列表(以及页面),以便能够(它发生在我身上),通过一个数组并自动发布。

现在我很清楚以下几点:

1.- 我需要创建一个应用程序:https ://developers.facebook.com/

2.- 安装 Facebook SDK:https ://github.com/facebook/php-graph-sdk

3.- 我的班级已经保存了这些权限和这个配置:

require_once "/../vendor/autoload.php";
    class facebookController{
        private $appid ='XXXXX';
        private $appsecret='XXXXXXXXXXXXXXXXXXXXXXXXXX';
        public $fb;
        public $helper;
        public $permisos = ['email',  'manage_pages', 'publish_pages' , 'publish_to_groups', 'user_posts', 'groups_access_member_info'];
        public $callbackurl = 'http://localhost/misitio.com.mx/auth/fb-callback.php';
        public $loginurl;



        function __construct(){
            $this->fb = new Facebook\Facebook([
              'app_id' => $this->appid,
              'app_secret' => $this->appsecret,
              'default_graph_version' => 'v3.2',
            ]);
            $this->helper = $this->fb->getRedirectLoginHelper();
            $this->loginurl = $this->helper->getLoginUrl($this->callbackurl, $this->permisos);
        }
    }

4.-我必须获得访问令牌,可以在这里调试:https ://developers.facebook.com/tools/explorer?method=GET&path=me%3Ffields%3Did%2Cname&version=v3.2

$this->helper = $this->fb->getRedirectLoginHelper();

try {
    $accessToken = $this->helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  // When validation fails or other local issues
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}

5.- 在某些情况下我需要 user_id,我已经保存了它:

$oAuth2Client = $this->fb->getOAuth2Client();
$tokenMetadata = $oAuth2Client->debugToken($accessToken);
$userid = $tokenMetadata->getUserId();

6.- 例如,要在群组中发帖,我使用以下内容,这就是不便之处:(基于官方文档:https ://developers.facebook.com/docs/graph-api/reference/v3 。 2/用户/组)

public function toPost($titulo, $url){
    $empresa = new configuracionController();
    $userid=$empresa->getFbUserId();
    $accessToken = $empresa->getFBToken();



    try {
      // Returns a `Facebook\FacebookResponse` object
      $this->fb->post('/123456789/feed', $url, $accessToken);
    } catch(Facebook\Exceptions\FacebookResponseException $e) {
      echo 'Graph returned an error: ' . $e->getMessage();
      exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
      echo 'Facebook SDK returned an error: ' . $e->getMessage();
      exit;
    }

    $graphNode = $response->getGraphNode();


}

从已经非常感谢了。

标签: phpfacebookfacebook-graph-api

解决方案


推荐阅读