2012-06-28 97 views
0

我的Facebook用戶是多個Facebook頁面的管理員。我試圖做的是自動從外部php網站發佈到其中一個頁面的提要。例如,當網站上發生了一些有趣的事情時,向網頁的新聞流發佈通知。以編程方式發佈到Facebook頁面流

我已經創建了Facebook的應用程序,而且我在使用PHP的FB API這樣的:

//actual values redacted, obviously 
$appId = 'my_app_id'; 
$pageId = 'my_page_id'; 
$secret = 'my_app_secret'; 

//First i'm getting the authtoken 
$args = array(
    'grant_type' => 'client_credentials', 
    'client_id' => $appid, 
    'client_secret' => $secret 
); 

$ch = curl_init(); 
$url = 'https://graph.facebook.com/oauth/access_token'; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $args); 
$data = curl_exec($ch); 

//this comes back from facebook like auth_token=xxxxx 
$token = str_replace("access_token=", "", $data); //remove 'auth_token=' 


$facebook = new Facebook(array(
     'appId' => $appId, 
     'secret' => $secret, 
     'cookie' => false, 
     'domain' => 'mydomain.net' 
    )); 


$facebook->api("/$pageId/feed", 'post', array(   
    'access_token' => $token, 
    'link' => 'http://www.example.com' 
)); 

此連接到Facebook和嘗試發佈到飼料,但未能說:

(#200) The user hasn't authorized the application to perform this action 

所以我的問題是,我應該如何授權應用程序發佈到飼料?我沒有看到該應用程序的任何設置,似乎沒有辦法「添加」該頁面的權限。我完全失去了這一點,Facebook的文檔沒有太大的幫助。

任何幫助將非常感激。我已經失去了一整天的時間。

回答

0

嘗試從這個陣列

$facebook->api("/$pageId/feed", 'post', array(   
    **'access_token' => $token,** 
    'link' => 'http://www.example.com' 
)); 

,並設置標記這樣的POST API調用之前

$facebook->setAccessToken($token); 

讓我知道它是怎麼做去除$令牌參數

+0

與之前相同的結果,它抱怨說用戶尚未授權應用程序執行此操作 – btantlinger

0

所以我的問題是,我應該如何授權應用程序發佈到Feed?我沒有看到該應用程序的任何設置,似乎沒有辦法「添加」該頁面的權限。

你必須得到訪問令牌第一 - 無論是用戶訪問令牌(長壽的人後60天到期,所以你必須回到你的應用程序經常更新它),或者一個頁面訪問令牌(默認不會過期)。並且您必須要求必要的權限才能發佈(代表用戶進行操作時)。

要獲取它們,您必須通過身份驗證流程。所有的細節都在這裏描述:https://developers.facebook.com/docs/authentication/

如果您還不太熟悉API的使用,可能還會有所幫助,可能是Graph API Explorer - 您可以「玩耍」,製作不同類型的請求,看看結果或錯誤是什麼。它可以讓你在那裏生成用戶訪問令牌(讓你知道你自己必須在你的應用中做什麼)。

相關問題