如何在没有composer的情况下使用带有自动加载器的Facebook SDK 4.0


How to use Facebook SDK 4.0 without composer with autoloader

我想向Facebook用户发送通知。

我有下面的设置示例,但似乎没有任何进展,不断给出一个错误,"找不到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);
?>

谢谢。

您需要对Facebook API执行基本请求的关键类是FacebookSessionFacebookRequest。下面的示例尝试张贴在用户的墙上。

//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

希望它能帮助

这就是我为通知所做的(没有我的应用程序的所有其他代码)。在我的案例中,一个用户发布了一个论坛主题的新回复。在其他地方,我已经验证了是一个登录用户发出了这个请求,这样我就可以发起呼叫来发布新的通知。当涉及到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.
}
?>