2011-09-02 70 views
2

我正在構建一個演示應用程序,我可以在其中上傳通過該應用程序生成的隨機笑話。 我的代碼在2011年8月12日之前正常工作,更新了facebook api。 現在Facebook有一項政策,您不能通過應用程序自動執行狀態更新,用戶應該寫狀態更新?我如何解決這個問題?在最新的Facebook API中使用@「message」顯示狀態更新字段空白

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
    kAppId, @"app_id", 

    MainTextView.text, @"message", 
    nil]; 

[_facebook dialog:@"feed" andParams:params andDelegate:self]; 

這就是我使用和使用完美的工作。我也嘗試了stream.publish。

問候

+0

作爲一個說明 - 通過使用包含的Facebook對話框(它已於7月12日禁用) - http://developers.facebook.com/docs/reference/dialogs/feed/,這可能會更長。任何解決方案都可能涉及直接處理API(而不是通過包含的對話框)。 – dtuckernet

+0

@dtuckernet:OP提出了一種解決方法,可以使用Graph API並啓用publish_stream權限來完成此工作。這正是您提到的解決方案:「任何解決方案都可能涉及直接處理API」 – 2011-09-06 16:10:00

回答

2

您需要有publish_stream才能在用戶的牆上創建帖子。如果您嘗試在用戶未直接登錄您的應用時創建帖子,則還需要offline_accesspermission

blog post細節在8月12日更改。我沒有看到任何會破壞應用程序發佈狀態消息的能力。更有可能你真的在處理權限問題。

「無法自動執行狀態更新的策略」更多的是指導原則。在爲publish_streampermission的文檔,這是他們說什麼(強調):

請注意,Facebook的建議用戶啓動的共享模式。

這意味着他們建議針對將自動消息發佈到用戶的牆上。但是他們無法檢測用戶是否在您的應用中發起了帖子,因此他們會讓您成爲負責任的公民。

+0

7月12日停用。見上面的評論。 – dtuckernet

+0

我正在討論直接使用Graph API。我沒有使用內置的對話框,所以我不知道這一點。 – chesles

+0

夠公平 - 我會糾正我的投票。 – dtuckernet

2

這真的很簡單:

POST到https://graph.facebook.com/user-id/feed的鍵值對「消息」:「兔子走進酒吧......」你的應用程序必須具有publish_stream權限。

+1

Facebook Connect不再允許您預先填充消息字段。這已於7月12日生效。 http://developers.facebook.com/docs/reference/dialogs/feed/ – dtuckernet

+1

如果您將Graph API與publish_stream權限一起使用,則允許使用它。你應該扭轉你的失望。 – 2011-09-06 16:04:17