2012-05-04 39 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权限,因为网页上的相册/照片始终是公开的)。