2012-05-04 12 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_uploadpublish_actions、およびpublish_streamのアクセス許可があります。

私はここで間違っていますか?

UPDATE:

私は"/{album id}/photos"を用いて所定のアルバムに公開する場合、それが動作します。 this Facebook developer blog postを引用:

https://graph.facebook.com/USER_ID/photos - 写真はアプリの作成したアルバムに を公開されます。アプリのアルバムがまだ存在しない場合は、自動的に というアルバムを作成します。アップロードされた写真はすべて この写真へのコメントを追加しました。

ページのこの動作が壊れていますか?それとも私は何かを誤解していますか?

UPDATE 2:

私はこの問題のためにbug reportを見つけたので、私は答えとしてことを掲示しています。

UPDATE 3:

バグが解決されているようです。

+0

[constructor API](http://restfb.com/javadoc/com/restfb/DefaultFacebookClient.html#DefaultFacebookClient%28java.lang.String%29)を参照し、DefaultFacebookClientにパラメータaccessTokenを追加します。または、パブリックパス(?)を使用します。 –

+0

@JoopEggen - あなたは何を意味するのか分かりません - あなたは言い換えることができますか?それが意味されている場合は、回答として投稿してください。 –

+0

'new DefaultFacebookClient(getAccessToken())'しかし、私はあなたが誰も持っていないことを恐れています。本当の答えを待たなければなりません。アクセスを許可するためのセッション関連のタイムアウトです。私は本物のFacebookのプログラマーではない。 –

答えて

3

私は、この動作に対応したFacebookのバグレポートを見つけました:

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

だから、私が間違って何もしていないんだと思われます。一時的な回避策は、あらかじめ決められたアルバムを確認し、必要に応じて作成してから公開することだと思います。 (ページ上のアルバム/写真は常に公開されているため、この回避策にはuser_photosの権限は必要ありません)。