使用Facebook的PHP SDK向Facebook发出GET请求时出错

时间:2016-05-09 13:09:46

标签: php facebook facebook-graph-api facebook-php-sdk

我一直在努力研究如何使用他们最新的PHP SDK发送Facebook通知近一周,但我似乎无法让它工作。我已经尝试了我能在网上找到的所有东西,但我一直遇到错误。 所以我决定使用PHP来尝试一个简单的GET请求。 要做到这一点,我试图使用Facebook在这里提供的示例代码:

https://developers.facebook.com/docs/php/FacebookRequest/5.0.0

这是我正在尝试的代码: (我已经在这里替换了我的App ID和App Secret)

<?php
require_once __DIR__ . '/facebook-sdk-v5/autoload.php';

$fbApp = new Facebook\FacebookApp('123456789', 'a1b2c3d4e5f6g7h8i9');
$request = new Facebook\FacebookRequest($fbApp, '123456789|a1b2c3d4e5f6g7h8i9', 'GET', '/me');

// OR
//$fb = new Facebook\Facebook(/* . . . */);
//$request = $fb->request('GET', '/me');

// Send the request to Graph
try {
  $response = $fbApp->getClient()->sendRequest($request);
} 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;
}

$graphNode = $response->getGraphNode();

echo 'User name: ' . $graphNode['name'];
?>

这不起作用,它给了我错误:

  

致命错误:在 /home/mywebsite/public_html/Games/Barre/phptest.php 在线<调用未定义的方法Facebook \ FacebookApp :: getClient() b> 15

我不明白什么是错的,我认为我正确地关注Facebook的文件,但它不起作用。似乎是说getClient()未包含在我开始时包含的facebook-sdk-v5文件中。我已经确定我指向文件的正确目录,并且它们在该文件夹中都存在并且正确(facebook-sdk-v5)。这里的任何人都可以看到我出错的地方吗?

我真的很感激有关如何解决这个问题的任何建议。提前谢谢!

更新

<?php
require_once __DIR__ . '/facebook-sdk-v5/autoload.php';

//    $fbApp = new Facebook\FacebookApp('123456789', 'a1b2c3d4e5f6g7h8i9');
//    $request = new Facebook\FacebookRequest($fbApp, '123456789|a1b2c3d4e5f6g7h8i9', 'GET', '/me');

// OR

 $fb = new Facebook\Facebook([
  'app_id' => '{123456789}',
  'app_secret' => '{a1b2c3d4e5f6g7h8i9}',
  'default_graph_version' => 'v2.3',
  'default_access_token' => '{123456789|a1b2c3d4e5f6g7h8i9}',
  ]);

$request = $fb->request('GET', '/me');

// Send the request to Graph
try {
  $response = $fb->getClient()->sendRequest($request);
} 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;
}

$graphNode = $response->getGraphNode();

echo 'User name: ' . $graphNode['name'];
?>

控制台出错:

  

图表返回了错误:无效的OAuth访问令牌签名

第二次更新

此代码工作正常:

<?php

require_once __DIR__ . '/facebook-sdk-v5/autoload.php'; 

$fb = new Facebook\Facebook([
  'app_id' => '{123456789}',
  'app_secret' => '{a1b2c3d4e5f6g7h8i9j}',
  'default_graph_version' => 'v2.3',
  ]);

$request = $fb->post('/USERIDGOESHERE/notifications', array( 'template' => 'This is a test notification!'), '123456789|a1b2c3d4e5f6g7h8i9j');

?>

0 个答案:

没有答案