我无法将画布应用程序中的图像发布到用户的相册。根据 Facebook 文档:
为了将照片发布到用户的相册,您必须具有 publish_stream 权限。授予此权限后,您可以通过发出 HTTP POST 请求来上传照片,其中包含照片内容和可选描述到 Graph API 连接:
- https://graph.facebook.com/USER_ID/photos - 照片将发布到为您的应用创建的相册中。如果您的应用尚不存在,我们会自动为您的应用创建相册。以这种方式上传的所有照片都将添加到同一个相册中。
- https://graph.facebook.com/ALBUM_ID/photos - 照片将发布到特定的现有相册,由 ALBUM_ID 表示。
所以,从第一点开始,如果我上传这样的图像......
Facebook.api("me/photos",imagePostCallback,{message:"",image:myImageBitmap,fileName:''},URLRequestMethod.POST);
...然后我可以期待它将我的图像放在以我的应用程序命名的相册中,如果需要它会创建它吗?
不是这样。
当相册不存在时,实际发生的情况是上传的图像被推送到任何其他存在的方便相册中,这些相册通常是为其他应用程序(并由其他应用程序创建)。这有点痛苦。
到目前为止,我已经尝试了以下方法:
- 禁用沙盒模式。我原以为该应用程序可能无法创建新专辑,因为它处于沙盒模式,但是禁用沙盒模式没有任何区别,我可以在启用它的情况下直接创建专辑。
- 检查我的相册是否存在并在必要时创建它。我可以检查我的相册并在它不存在时创建它,但是我不能上传图像,因为
Facebook.api
如果不是作为用户交互的直接结果调用上传图像的 POST 调用将失败。
所以现在我有点难过。显然,我不可能让我的应用程序将图像发布到竞争对手的相册,但目前我能看到的唯一选择是如果必须创建相册,有效地让用户提交他们的图像两次。有任何想法吗?