2011-05-01 71 views
0

我要發佈一個URL作爲附件的朋友牆:使用Facebook的流發佈

var attachment={'name':'favor','href':'http://128.196.239.71/movie.php?mid=<?php echo $_GET['mid']; ?>'}; 
             Facebook.streamPublish('',attachment,null,friends[i],comment,callback); 

上面做給了我一個Facebook不確定的,我應該怎麼做才能解決這個問題?

我是否需要設置特殊權限才能對此消息的發件人執行此操作?

+0

Facebook.streamPublish在一年前不贊成使用 – 2011-05-02 13:10:00

回答

2

您確實需要stream.publish權限才能使用stream.publish方法或等效的圖形API調用。

您可以檢查用戶已經授予該權限,像這樣的東西:你可以響應

FB.login(function(response) { /* check perms */ }, {scope: 'publish_stream'}) 

然後:

FB.getLoginStatus(function(response) { if (response.perms) { /* check perms */ } }) 

你可以用一些請求允許這樣的檢查它是否真的被授予,那麼你應該可以做流發佈調用。

但是,我不認識你的電話「Facebook.streamPublish」的格式。我認爲,新的API需要你做一個呼叫更像

FB.api({method: 'stream.publish', message: 'hello'}, function(response) {}) 

或者這一切,你可以使用對話框API來創建一個帖子,並將其展示給用戶,並讓他們批准,或不批准。這不需要stream.publish權限。像這樣的東西(在FB.ui API文檔中給出的示例):

FB.ui(
    { 
    method: 'feed', 
    name: 'Facebook Dialogs', 
    link: 'http://developers.facebook.com/docs/reference/dialogs/', 
    picture: 'http://fbrell.com/f8.jpg', 
    caption: 'Reference Documentation', 
    description: 'Dialogs provide a simple, consistent interface for applications to interface with users.', 
    message: 'Facebook Dialogs are easy!' 
    }, 
    function(response) { 
    if (response && response.post_id) { 
     alert('Post was published.'); 
    } else { 
     alert('Post was not published.'); 
    } 
    } 
); 

在Facebook的速度變化,我希望一些這方面的信息仍然是時間精確你讀它(甚至精確到開始用)。

+0

他正在使用最有可能的遺留庫,或者遵循過時的教程([Facebook.streamPublish](https://developers.facebook.com/docs/fbjs/streamPublish/) )他應該使用新的JS-SDK – ifaour 2011-05-01 12:26:55