我一直在努力研究如何使用他们最新的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');
?>