2014-12-30 70 views
0

继大量的研究,因为我能做到,我曾尝试使用后的Facebook视频以下: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”,而不是@ “源”,
  5. 我用@ “的contentType”,虽然一些答案它作为@ “的contentType”。我尝试了两种选择。
  6. 然后一些答案将@“ContentType”作为@“multipart/formdata”,其他答案将其作为@“video/quicktime”。我已经尝试过,结果没有任何区别。

我阅读Facebook头文件中的文档,它说如果您提供NSData作为参数,它将作为HTTP附件发送,因此它不会作为多部分数据发送。如果我自己组装HTTP主体,那么没有API可以使用预装配的HTTP主体来创建FBRequest。

我没有做过任何事情,可以让我找回新上传视频的ID。如果任何人都可以提供帮助,那会很棒。谢谢,

回答

0

我终于明白了这个问题。

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

因此,我们可以简单地发布与我/视频,和Facebook似乎处理罚款。

所以我不需要发布到graph-video.facebook.com,我也不需要担心多部分机构。这可能会在未来的晚些时候发生变化,因为API要求它,所以当时我必须弄清楚。

现在我可以张贴罚款。