使用AS3 API将图像发布到Facebook相册

时间:2011-07-07 13:51:16

标签: actionscript-3 facebook facebook-graph-api facebook-as3-api

我无法将画布应用程序中的图像发布到用户的相册中。根据Facebook文档:

  

要将照片发布到用户的相册,您必须拥有publish_stream权限。授予此权限后,您可以通过发布带有照片内容的HTTP POST请求以及这些图表API连接的可选说明来上传照片:

     
      
  1. https://graph.facebook.com/USER_ID/photos - 照片将发布到为您的应用创建的相册中。如果您的应用尚不存在,我们会自动为您创建相册。以这种方式上传的所有照片将被添加到同一张专辑中。
  2.   
  3. https://graph.facebook.com/ALBUM_ID/photos - 照片将发布到特定的现有相册,由ALBUM_ID表示。
  4.   

所以,一点一点,如果我上传这样的图像......

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

...那么我可以期待它将我的图像放在一个以我的应用命名的专辑中,如有必要,它会创建吗?

不是

当相册不存在时实际发生的事情是上传的图像被推送到任何其他存在的便利相册中,这些相册通常用于(并由其他应用程序创建)。这有点痛苦。

到目前为止,我已经尝试了以下内容:

  1. 禁用沙盒模式。我原以为该应用可能无法创建新专辑,因为它处于沙盒模式,但禁用沙盒模式没有任何区别,我可以直接创建专辑并启用它。
  2. 检查我的相册是否存在,并在必要时创建相册。我可以检查我的相册并创建它,如果它不存在,但我无法上传图像,因为如果不是用户的直接结果,调用Facebook.api上传图像的POST将失败相互作用。
  3. 所以现在我有点难过了。显然,我不能将我的应用程序发布到竞争对手的专辑中,但目前我能看到的唯一选择是如果必须创建专辑,有效地让用户提交他们的图像两次。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我猜你需要你的params中的access_token :)当在用户的脸书上发帖时,你总是需要这个(获取信息时并不总是必要的)。获取accessstoken的方法如下所示:)

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-code for graph 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中上传图像时,它应该可以工作并上传您的图像(根据我发现的内容)。