2012-05-04 37 views
3

我試圖使用發佈一張照片,一個頁面時,以下幾點:意外的錯誤發佈照片

FacebookClient client = new DefaultFacebookClient(destinationAccessToken); 
BinaryAttachment attachment = BinaryAttachment.with(imageName, imageInputStream); 
Photo photoResponse = client.publish("/me/photos", Photo.class, attachment); 

我得到如下回應:

{ 
    "error": { 
     "message":"An unexpected error has occurred. Please retry your request later.", 
     "type":"OAuthException", 
     "code":2 
    } 
} 

當我使用相同的代碼發佈到用戶牆它工作正常。

我也嘗試張貼到"/{page id}/photos"與結果相同。

目標訪問令牌具有manage_pages,photo_upload,publish_actionspublish_stream權限等等。

我在這裏做錯了什麼?

UPDATE:

如果我發佈使用"/{album id}/photos"然後它預定相冊。引用this Facebook developer blog post

https://graph.facebook.com/USER_ID/photos - 照片將 發佈到你的應用程序創建的相冊。如果您的應用尚不存在,我們會自動爲您的應用創建一個 專輯。所有照片上傳 這種方式將被添加到這個相冊。

那麼,這種行爲打破了網頁?或者我在這裏誤解了什麼?

更新2:

我發現這個問題bug report,所以我張貼,作爲一個答案。

更新3:

的錯誤似乎已得到解決。

+0

請參閱[構造函數API](http://restfb.com/javadoc/com/restfb/DefaultFacebookClient.html#DefaultFacebookClient%28java.lang.String%29),將參數accessToken添加到DefaultFacebookClient。或者使用公共路徑(?)。 –

+0

@JoopEggen - 我不確定你的意思 - 你能改述嗎?如果是這樣的話,請發表一個答案。 –

+0

'新的DefaultFacebookClient(getAccessToken())'但我怕你沒有。你將不得不等待一個真實的答案。這是一個會話相關超時允許訪問。我不是一個真正的Facebook程序員。 –

回答

3

我發現與此對應的行爲Facebook的錯誤報告:

http://developers.facebook.com/bugs/355536551171535

所以它似乎我沒有做錯什麼。我想暫時的解決辦法是檢查一個預定的專輯,並在必要時創建它,然後發佈給它。 (請注意,此替代方法不需要user_photos權限,因爲網頁上的相冊/照片始終是公開的)。