2009-07-20 164 views
4

我想知道是否有人會幫我排查我的stream.publish測試。我以爲我擁有所有正確的作品。這裏是代碼:Facebook stream.publish的先決條件是什麼?

<?php 
require_once 'facebook.php'; 
$appapikey = 'xxxxxxx'; 
$appsecret = 'xxxxxxx'; 
$facebook = new Facebook($appapikey, $appsecret); 
$user_id = $facebook->require_login(); 


$message = "Will this status show up and allow me to dominate the world?!"; 
$uid = $user_id; 
echo $uid; 
$facebook->api_client->stream_publish($message,$uid); 

我期待的是我的狀態改變爲$ message的內容。反而會發生什麼,我的UID被echo'd,然後它會引發500錯誤。我允許publish_stream以及offline_access(通過我的個人資料在我的應用設置中驗證),API密鑰將這一小部分代碼掛鉤到我的應用。做這個簡單的例子還需要做些什麼?我發現FB文檔有點難以放在一起。

- 的包括是官方的PHP Facebook的庫

回答

6

stream_publish()的時間超過兩個參數:

stream_publish($message, $attachment = null, 
       $action_links = null, $target_id = null, 
       $uid = null) 

其中$ target_id是要發佈和$ UID用戶或頁面是用戶或正在進行發佈的頁面 - 哪些默認爲會話ID。要完全明確這一點,我想你需要嘗試

<?php 
require_once 'facebook.php'; 
$appapikey = 'xxxxxxx'; 
$appsecret = 'xxxxxxx'; 
$facebook = new Facebook($appapikey, $appsecret); 
$user_id = $facebook->require_login(); 

$message = "Will this status show up and allow me to dominate the world?!"; 

echo $user_id; 
$facebook->api_client->stream_publish($message,null,null,$user_id,$user_id); 

另一種形式可能是:

$app_id = 'xxxxxxx'; 
$facebook->api_client->stream_publish($message,null,null,$user_id,$app_id); 
+0

我的問題是所有的參數都被列爲可選參數,所以我只包含了我認爲我需要的東西,而沒有想到它們的順序決定了它們的意思(IE,使用佔位符來回答所有可用的參數)非常感謝爲了幫助我。 – 2009-07-22 01:08:45

0

取出$uid變量並不需要發佈它。請參閱本wiki entry更多信息

$stream_post_id = $facebook->api_client->stream_publish($message); 
//returns $post_id to use if you want to revert the creation. 
+0

在我的腳本中,它將如何知道要發佈消息的用戶帳戶? – 2009-07-21 15:47:48

+0

這樣的電話號碼 $ facebook-> api_client-> stream_publish($ message,$ attachment,$ actionlinks); 它會發布到你所有的朋友牆上。 – 2009-09-02 09:23:14

2

這一個工程!我有同樣的問題。由於Facebook的變化,大部分內容似乎已經過時。我終於找到一種方式,在這裏工作,快速做了博客文章吧:

http://facebookanswers.co.uk/?p=214

還有一個屏幕截圖給你看的結果是什麼。確保你也看到有關身份驗證的博客文章。