facebook视频无法发布

时间:2014-12-30 09:56:44

标签: ios facebook facebook-graph-api

经过我的研究,我尝试使用以下内容发布Facebook视频:

   NSDictionary *params = [ NSDictionary dictionaryWithObjectsAndKeys:
                                filmData, @"video.mov",     // @"source",
                                @"video/m4v", @"contentType",
                                @"Figure It!", @"title",
                                @"Figure It! Film", @"description",
                                nil
                                ];


    /* make the API call */
    NSString* graphPath = [ NSString stringWithFormat:@"%@/me/videos", facebook_video_base_url ];

    FBRequest *request = [ FBRequest requestWithGraphPath:graphPath 
                                               parameters:params
                                               HTTPMethod:@"POST" ];

    [ request startWithCompletionHandler:^(
                                           FBRequestConnection *connection,
                                           id result,
                                           NSError *error
                                           )

这些是我的观察:

  1. 如果我发布到https://graph-video.facebook.com/me/videos,它总是会返回通用答案,其中包含根对象/我/视频的ID。此ID始终为10150481253673034.
  2. 如果发布给我/视频,那么我会收到错误"(#352)抱歉,您选择的视频文件采用我们不支持的格式。"
  3. 我使用了描述而不是消息,我也使用了标题。
  4. 我使用了@" video.mov"而不是@" source",
  5. 我使用了@" contentType",虽然有些答案是@" content-Type"。我尝试了两种选择。
  6. 然后一些答案有@" ContentType" as @" multipart / formdata"和其他人一样把它作为@" video / quicktime"。我尝试了两种,结果没有区别。
  7. 我阅读了Facebook头文件中的文档,它说如果您提供NSData作为参数,它将作为HTTP附件发送,因此它不会作为多部分数据发送。如果我自己组装HTTP主体,则没有API可以使用预先组装的HTTP主体创建FBRequest。

    我所做的一切都没有给我一个新上传的视频的ID。如果有人可以提供帮助,那就太好了。谢谢,

1 个答案:

答案 0 :(得分:0)

我终于找到了问题所在。

问题是我的会话是在ReadPermissions上打开而不是在PublishPermissions上打开。所以我使用openActiveSessionWithPublishPermissions用@“publish-actions”重新打开了我的FBSession,问题得到了解决。

所以我们可以简单地发布我/视频,而facebook似乎处理得很好。

所以我不需要发布到graph-video.facebook.com,也不需要担心多部分机构。这可能会在以后的某个时候发生变化,因为API要求它,所以那时我必须弄明白。

现在我可以发帖了。