How to use Facebook SDK 4.0 without composer with autoloader

守給你的承諾、 提交于 2019-12-25 03:35:53

问题


I want to send a notification to a Facebook user.

I have the following setup example, but can't seem to get anywhere, Keeps giving an error that "Facebook Class not found".

<?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);
?>

Thanks.


回答1:


The key classes you need to do basic requests to Facebook API are FacebookSession and FacebookRequest. The following example tries to post at user's wall.

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

Additionally you have to make sure your Facebook application has enough permissions to do the action you are requesting (send a notification in this case)

For further details about Facebook API permissions review please check: https://developers.facebook.com/docs/apps/review

And for details about Facebook PHP Api: https://developers.facebook.com/docs/reference/php/4.0.0

Hope it helps




回答2:


This is what I do for notifications (without all the other code for my app). In my case a user has posted a new reply to a forum topic. In other places I've already verified its a logged in user making this request so I can initiate the call to post a new notification. I got kind of lazy when it came to the use statements and I normally just throw every single one on there just in case, but I only left the ones I thought you might need here. Make sure to add error handling! There's also more than one way of wording the request.

<?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.
}

?>


来源:https://stackoverflow.com/questions/26219564/how-to-use-facebook-sdk-4-0-without-composer-with-autoloader

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!