Получить счетчик активности Facebook для ссылок - PullRequest
0 голосов
/ 16 января 2019

У меня проблемы с подсчетом активности в Facebook. Я никогда не использовал это раньше, поэтому, пожалуйста, имейте некоторое понимание. Вот как я сейчас получаю эти вещи, очевидно, через PHP:

function getNumberOfShares($url, $id) {

        $url_https = "https://graph.facebook.com/?fields=og_object{likes.summary(total_count).limit(0)},share&id=https://url.com/part/" . $url."/". $id;

        $fileContents = file_get_contents($url_https);
        $data_share = json_decode($fileContents, true);
        $total = $data_share['share']['share_count'];
        echo $fileContents;
        return $total;
    }

Я пытался что-то с $ access_token, но мне было отказано в разрешении из-за большого количества запросов. Мне нужен способ делать как минимум 50-100 ссылок на запрос с интервалами. Спасибо.

РЕДАКТИРОВАТЬ ПОСЛЕ НЕКОТОРЫХ ИССЛЕДОВАНИЙ

require_once("fb/src/Facebook/autoload.php");
$default = "111|11A122SAFB";
$fb = new Facebook\Facebook([
  'app_id' => '{111}',
  'app_secret' => '{11A122SAFB}',
  'default_access_token' => $default,
    'default_graph_version' => 'v2.3',
  ]);

$batch = [
    $fb->request('GET', 'https://example.com/part/slug/id&fields=og_object{engagement}'),
    $fb->request('GET', 'https://example.com/part/slug/id&fields=engagement'),
    ];

try {
    $responses = $fb->sendBatchRequest($batch);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  // When Graph returns an error
  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;
}

foreach ($responses as $key => $response) {
  if ($response->isError()) {
    $e = $response->getThrownException();
    echo '<p>Error! Facebook SDK Said: ' . $e->getMessage() . "\n\n";
    echo '<p>Graph Said: ' . "\n\n";
    var_dump($e->getResponse());
  } else {
    echo "<p>(" . $key . ") HTTP status code: " . $response->getHttpStatusCode() . "<br />\n";
    echo "Response: " . $response->getBody() . "</p>\n\n";
    echo "<hr />\n\n";
  }
}

Теперь я получил такой ответ для двух ссылок из пакета, и они имеют разное окончание:

(0) HTTP status code: 200
Response: {"id":"https:\/\/example.com\/part\/slug\/id&fields=og_object{engagement}"}

(1) HTTP status code: 200
Response: {"id":"https:\/\/example.com\/part\/slug\/id&fields=engagement"}

Кто-нибудь знает, как получить долю, лайки, комментарии (участие) с этим. Спасибо!

1 Ответ

0 голосов
/ 16 января 2019
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...