我想向Facebook用户发送通知。
我有以下设置示例,但似乎无法到达任何地方,Keeps给出“找不到Facebook类”的错误。
<?php
session_start();
require_once 'autoload.php';
require_once( 'src/Facebook/FacebookSession.php' );
require_once( 'src/Facebook/FacebookRequest.php' );
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
$facebook = new Facebook();
$app_id = '654346742464654654';
$app_secret = '--my-secret--';
$app_access_token = $app_id . '|' . $app_secret;
$response = $facebook->api( '/65785757987982452465465445465/notifications', 'POST', array(
'template' => 'You have received a new message.',
'href' => 'RELATIVE URL',
'access_token' => $app_access_token
) );
print_r($response);
?>
感谢。
答案 0 :(得分:1)
对Facebook API执行基本请求所需的关键类是FacebookSession
和FacebookRequest
。以下示例尝试在用户的墙上发布。
//First of all, initialize with your Facebook App id and secret
FacebookSession::setDefaultApplication("YOUR_APP_ID", "YOUR_APP_SECRET");
//Now its time to make a new FacebookSession instance
$session = new FacebookSession($accessToken);
//Sending the API request for posting
$response = (new FacebookRequest($session,"POST","/me/feed",array(
"message" => "I'm a cool guy"
)))->execute();
$responseObject = $response->getGraphObject();
//do something with the result
此外,您必须确保您的Facebook应用程序具有足够的权限来执行您请求的操作(在这种情况下发送通知)
有关Facebook API权限审核的更多详细信息,请检查: https://developers.facebook.com/docs/apps/review
有关Facebook PHP Api的详细信息: https://developers.facebook.com/docs/reference/php/4.0.0
希望有所帮助
答案 1 :(得分:0)
这就是我为通知所做的事情(没有我的应用程序的所有其他代码)。在我的情况下,用户已发布对论坛主题的新回复。在其他地方,我已经验证了其登录用户发出此请求,因此我可以发起呼叫以发布新通知。当谈到use
语句时,我有点懒惰,为了以防万一,我通常会把每一个都放在那里,但我只留下了我认为你可能需要的那些。确保添加错误处理!还有不止一种方法来处理请求。
<?php
session_start();
require_once 'autoload.php';
use Facebook\FacebookRequest;
use Facebook\FacebookRequestException;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookServerException;
use Facebook\FacebookSession;
use Facebook\GraphObject;
$app_id="APP_ID";
$app_secret="APP_SECRET";
$access_token=$app_id."|".$app_secret;
FacebookSession::setDefaultApplication($app_id,$app_secret);
$session=new FacebookSession($access_token);
try
{
$request=(new FacebookRequest($session,'POST','/'.$user_id.'/notifications',array('href'=>$url,'template'=>$message,'access_token'=>$access_token)));
$response=$request->execute();
}
catch(FacebookRequestException $ex)
{
//Handle error here.
}
catch(\Exception $ex)
{
//Handle error here.
}
?>