diff --git a/src/Backend/Facebook.php b/src/Backend/Facebook.php index 0d15082..f28c6be 100644 --- a/src/Backend/Facebook.php +++ b/src/Backend/Facebook.php @@ -34,7 +34,7 @@ public function setConfig(array $config): void public function getRequest(string $url): RequestInterface { $accessToken = urlencode($this->config['app_id']) . '|' . urlencode($this->config['secret']); - $query = 'https://graph.facebook.com/v7.0/?id=' . urlencode($url) . '&fields=engagement&access_token=' + $query = 'https://graph.facebook.com/v18.0/?id=' . urlencode($url) . '&fields=og_object%7Bengagement%7D&access_token=' . $accessToken; return new \GuzzleHttp\Psr7\Request('GET', $query); @@ -45,14 +45,8 @@ public function getRequest(string $url): RequestInterface */ public function extractCount(array $data): int { - if (isset( - $data['engagement']['reaction_count'], - $data['engagement']['comment_count'], - $data['engagement']['share_count'] - )) { - return $data['engagement']['reaction_count'] - + $data['engagement']['comment_count'] - + $data['engagement']['share_count']; + if (isset($data['og_object']['engagement']['count'])) { + return $data['og_object']['engagement']['count']; } return 0; diff --git a/tests/FacebookTest.php b/tests/FacebookTest.php index bb1b3a5..13c0cc0 100644 --- a/tests/FacebookTest.php +++ b/tests/FacebookTest.php @@ -21,7 +21,7 @@ public function testConfig() $facebook->setConfig(['app_id' => 'foo', 'secret' => 'bar']); $request = $facebook->getRequest('https://www.heise.de'); $this->assertEquals( - 'id=' . urlencode('https://www.heise.de') . '&fields=engagement&access_token=foo%7Cbar', + 'id=' . urlencode('https://www.heise.de') . '&fields=og_object%7Bengagement%7D&access_token=foo%7Cbar', $request->getUri()->getQuery() ); } @@ -36,9 +36,9 @@ public function testUsesGraphApi() $request = $facebook->getRequest('https://www.heise.de'); $this->assertEquals('graph.facebook.com', $request->getUri()->getHost()); - $this->assertEquals('/v7.0/', $request->getUri()->getPath()); + $this->assertEquals('/v18.0/', $request->getUri()->getPath()); $this->assertEquals( - 'id=' . urlencode('https://www.heise.de') . '&fields=engagement&access_token=foo%7Cbar', + 'id=' . urlencode('https://www.heise.de') . '&fields=og_object%7Bengagement%7D&access_token=foo%7Cbar', $request->getUri()->getQuery() ); }