2014-10-06 52 views
0

我想向Facebook用户发送通知。如何在不使用自动加载器的情况下使用Facebook SDK 4.0

我有以下设置示例,但似乎无法获取任何地方,继续给出“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

由于您使用的是自动加载器,因此无需另外需要其他两个文件。它们将被自动包含在内。 – Phillip 2014-10-21 14:40:58

回答

1

您需要对Facebook API进行基本请求的关键类别为FacebookSessionFacebookRequest。以下示例尝试在用户的墙上发帖。

​​

另外,你必须确保你的Facebook应用程序有足够的权限做你所请求的动作(在这种情况下发送通知)

有关Facebook的API权限审查的进一步详情,请查询: https://developers.facebook.com/docs/apps/review

而对于关于Facebook PHP API的详细信息: https://developers.facebook.com/docs/reference/php/4.0.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. 
} 

?> 
相关问题