facebook 使用 PHP SDK 打开图计数共享

Posted

技术标签:

【中文标题】facebook 使用 PHP SDK 打开图计数共享【英文标题】:facebook open graph count shares using PHP SDK 【发布时间】:2017-06-08 15:31:15 【问题描述】:

从 Facebook 文档中我可以获取调用以下 url https://graph.facebook.com/?id=http://www.google.it 的网页的共享计数,返回的数据如下:


   "share": 
      "comment_count": 0,
      "share_count": 636734
   ,
   "og_object": 
      "id": "389545309239",
      "title": "Google",
      "type": "website",
      "updated_time": "2017-06-08T10:05:50+0000"
   ,
   "id": "http://www.google.it"

我想通过以下代码使用 php SDK 获取相同的数据:

//require the Facebook PHP SDK

$client_id="my app id";
$client_secret="my secret key";
$default_access_token = file_get_contents( "https://graph.facebook.com/oauth/access_token?client_id=$client_id&client_secret=$client_secret&grant_type=client_credentials");

$OGResponse = new Facebook\Authentication\AccessToken($default_access_token);

$access_token = json_decode($OGResponse)->access_token;

$fb = new Facebook\Facebook([
    'app_id' => $client_id, // Replace app-id with your app id
    'app_secret' => $client_secret,
    'default_access_token' => $access_token,
]);

$helper = $fb->getRedirectLoginHelper();

$request = new \Facebook\FacebookRequest(
    $fb->getApp(),
    $access_token,
    'GET',
    '/',
    array(
        'id' => 'http://www.google.it',
    )
);

$response = $fb->getClient()->sendRequest($request);

//$response = $request->execute();
$graphObject = $response->getGraphObject();

访问 $graphObject 我可以检索相同的数据,除了“share”键中的数据,这是我感兴趣的。

如果我使用 GRAPH API Explorer,我会使用 PHP SDK 获得相同的信息:


  "og_object": 
  "id": "389545309239",
  "title": "Google",
  "type": "website",
  "updated_time": "2017-06-08T10:05:50+0000"
,
"id": "http://www.google.it"
 

有什么方法可以使用 PHP SDK 获取“共享”?

【问题讨论】:

developers.facebook.com/docs/graph-api/reference/v2.9/url 【参考方案1】:

试试这个 graph api explorer v2.8

但您无法使用 graph api v2.9 获取 share 字段,因为 v2.9 及更高版本不推荐使用 share 字段,或者您可以使用 engagement 字段,如 graph api explorer v2.9

对于 PHP SDK:

$request = new \Facebook\FacebookRequest(
    $fb->getApp(),
    $access_token,
    'GET',
    '/',
    array(
        'id'     => 'http://www.google.it',
        'fields' => 'engagement,og_object',
    )
);

然后你会得到这样的东西


  "engagement": 
    "reaction_count": 207037,
    "comment_count": 125335,
    "share_count": 304362,
    "comment_plugin_count": 0
  ,
  "og_object": 
    "id": "389545309239",
    "title": "Google",
    "type": "website",
    "updated_time": "2017-06-08T15:58:56+0000"
  ,
  "id": "http://www.google.it"

【讨论】:

我正在接收一个对象而不是一个 json。此外,该对象没有任何关于 Graph Api Explorer 返回的信息。你能帮我说说为什么吗?非常感谢。

以上是关于facebook 使用 PHP SDK 打开图计数共享的主要内容,如果未能解决你的问题,请参考以下文章

Facebook-connect:无法使用PHP SDK + JS SDK注销

使用 Facebook PHP SDK 4,但没有存储会话

facebook-php-sdk loginurl api 错误代码 100

facebook-ios-sdk 是不是使用 iOS 6 Facebook 集成来支持登录而不打开本机 Facebook 应用程序?

Facebook 身份验证使用 php sdk 和 Yii 框架

使用 Facebook PHP SDK v4 发布图像时出错