2014-10-06 48 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. 
} 

?> 
相關問題