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

相关问题