4

我無法將圖像從我的畫布應用程序發佈到用戶的相冊中。根據Facebook文檔:將圖像發佈到使用AS3 API的Facebook相冊

爲了將照片發佈到用戶的相冊,您必須具有publish_stream權限。經授予,您可以通過發出與照片內容和可選說明一個這些HTTP POST請求到圖形API的連接上傳照片:

  1. https://graph.facebook.com/USER_ID/photos - 照片將被髮布到創建的相冊的應用程序。如果您的應用不存在,我們會自動爲您的應用創建一個相冊。所有以這種方式上傳的照片將被添加到同一張專輯中。
  2. https://graph.facebook.com/ALBUM_ID/photos - 該照片將發佈到由ALBUM_ID代表的特定現有相冊中。

因此,通過一點一點去,如果我上傳這樣的圖像...

Facebook.api("me/photos",imagePostCallback,{message:"",image:myImageBitmap,fileName:''},URLRequestMethod.POST); 

...然後我可以期望它把我的形象命名爲專輯我應用程序,它將在必要時創建?

並非如此

專輯不存在時實際發生的事情是,上傳的圖像被推送到任何其他現有的專輯中,這些專輯通常用於(並由其他應用程序創建)。這有點痛苦。

到目前爲止,我已經試過如下:

  1. 禁用沙盒模式。我曾認爲應用程序可能無法創建新相冊,因爲它處於沙盒模式,但禁用沙盒模式並沒有什麼區別,我可以直接使用它啓用相冊。
  2. 檢查是否存在我的相冊並在必要時創建它。如果它不存在,我可以檢查我的相冊並創建它,但是因爲POST調用Facebook.api以上傳圖像將失敗,如果它不作爲用戶交互的直接結果被調用,則我不能上傳圖像。

所以現在我有點難倒了。很明顯,我無法將我的應用程序發佈到競爭對手相冊的可能性,但目前唯一可以看到的替代方法將涉及如果必須創建專輯,則有效地使用戶提交圖像兩次。有任何想法嗎?

+1

你有沒有想過如何做到這一點?我有一個類似的問題,我想:http://stackoverflow.com/questions/9815103/as3-facebook-canvas-app-need-to-post-image-to-friends-feed-wall-can-it-be – Ribs

回答

3

我猜你需要在你的params中的access_token :)當在用戶的Facebook上發佈內容時,你總是需要這個(在獲得信息時並不總是必需的)。下面來獲得的accessToken方式所示:)

public function post():void 
{ 
    var _params:Object = new Object(); 

    _params.access_token = Facebook.getSession().accessToken; 
    _params.message = ""; 
    _params.image = myImageBitmap; 
    _params.fileName = ""; 

    Facebook.api("me/photos", imagePostCallback, _params, URLRequestMethod.POST); 
} 

也確保您詢問您的應用權限時有正確的權限。

編輯

好了,我已經錯過了你編輯了一下那裏;)應該可以創建自己的專輯。看看這個php代碼圖api。代碼也應該能夠被解析爲AS3。

http://developers.facebook.com/blog/post/498/

EDIT2

好了,我已經做了一些更多的挖掘(挺有意思的,就知道了)。這在使用圖形API時應該實際上工作。

FB.api('/me/albums', albumCreateCallback, {name: 'name of the album', message: 'description of the album'}, URLRequestMethod.POST); 

當你再調用另一個API調用上傳的albumCreateCallback你的形象,它應該工作,並上傳你的圖片(根據我所發現的)。

+0

感謝您的回覆。絕對不是權限/ access_token問題,我很害怕。圖片確實發佈了,而不是它自己的專輯,因爲它應該是。我已經在檢查相冊的存在並根據需要創建相冊,但正如我在問題中提到的,這不會發生在用戶交互上,因爲這樣圖像帖子不會被視爲用戶的直接結果相互作用。如果該應用程序尚不存在,我已經選擇在應用程序的早期默默創建專輯,但如果用戶選擇不提交,則可能會留下空的專輯。 – shanethehat

+0

是否有一些事件會在應用程序關閉時觸發?也許你可以檢查一下專輯是否是空的,如果是的話,再次刪除它? :) –

+0

我想這也許可能,如果我也獲得offline_access權限... – shanethehat

相關問題