publish_stream的文檔顯示爲:「允許您的應用程序將內容,評論和喜歡發佈到用戶的流和用戶的流朋友,通過此權限,您可以隨時將內容發佈到用戶的Feed中,而無需使用offline_access。「如何使用publish_stream發佈到Facebook用戶朋友的牆,但使用應用程序訪問令牌不是offline_access
所以工作流程是這樣的:
的FB.login()與publish_stream範圍,像這樣:
FB.login(function (response) { if (response.authResponse) { FB.api('/me/permissions', function (permissions) { if (permissions.data[0].publish_stream == 1) { //user has now granted publish_stream to this application } }); } }, { scope: 'publish_stream' });
使用C#的Facebook SDK使用張貼到該用戶的朋友的牆應用程序的訪問令牌。
var client = new FacebookClient(FacebookAppId, FacebookAppSecret); // Build the wall post dynamic parameters = new ExpandoObject(); parameters.message = facebookDeliveryQueueItem.MessageBody; // user message // Post to the wall client.Post(facebookRecipientId + "/feed", parameters);
這將返回:
{"error":{"message":"(#200) The user hasn't authorized the application to perform this action","type":"OAuthException"}}
但是!如果我嘗試使用此代碼發佈到我自己的牆上,它就可以正常工作。
如果用戶向我的應用程序授予publish_stream,然後我可以使用APPLICATION訪問令牌(您可以通過發出GET到https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=APP_ID_HERE&client_secret=APP_SECRET_HERE)來發布該用戶的牆上 - 但不是該用戶的朋友的牆。
所以是「和用戶的朋友溪流」的Facebook文件的一部分謊言或我做錯了嗎?那裏有大量的錯誤信息。
這個很奇怪。我可以使用圖API API工具使用該權限發佈到朋友的牆上。 https://developers.facebook.com/tools/explorer你可以試試看看它是否適合你? – DMCS 2011-12-28 06:09:12
正如bool.dev所說,你需要用戶訪問令牌,而不是app_access_token ..我試圖使用圖形API瀏覽器並使用post方法發佈到我的牆和朋友的牆上 – Vijay 2011-12-28 06:51:54
@ bool.dev那麼這是我的問題 - 是在說我可以使用應用程序令牌在用戶朋友的牆上張貼文檔時文檔錯誤,或者這不是您如何做的? – 2011-12-28 18:01:21