当前位置: 首页 > 知识库问答 >
问题:

使用SDKiOS将视频发布到Facebook时出错

狄旻
2023-03-14

我有一个应用程序,可以使用Facebook SDK将本机(MOV文件)视频发布到FacebookiOS。它一直运行正常,直到几周前才出现以下错误:

    error =         {
        code = 352;
        message = "(#352) Sorry, the video file you selected is in a format that we don't support.";
        type = OAuthException;
    };

完整的错误字符串是:

error Domain = com . Facebook . SDK Code = 5 "操作无法完成。(com.facebook.sdk错误5。)" UserInfo = 0x1ea 42880 { com . Facebook . SDK:HTTPStatusCode = 400,com . Facebook . SDK:ParsedJSONResponseKey = { body = { error = { code = 352;message = "(#352)抱歉,我们不支持您选择的视频文件的格式。";type = OAuthException};};代码= 400;headers =({ name = " Access-Control-Allow-Origin ";value = " *},{ name = " Cache-Control ";value = " no-store ";},{ name = Connection值=关闭;},{ name = " Content-Type ";value = " text/JavaScript;charset = UTF-8 ";},{ name = Expiresvalue = " 2000年1月1日星期六00:00:00 GMT ";},{ name = Pragmavalue = "无缓存";},{ name = " WWW-Authenticate ";value = " OAuth \ " Facebook Platform \ " \ " invalid _ request \ " \ "(# 352)抱歉,我们不支持您选择的视频文件的格式。\"";},{ name = " x-f b-load mon ";value = "0,30,70 ";} );},com . Facebook . SDK:ErrorSessionKey =,expiration date:4001-01-01 00:00:00 0000,refresh date:2013-10-15 17:19:33 0000,attempted refresh date:2013-10-24 14:56:54 0000,权限:(" share_item ",email," user_photos "," user_videos "," publish_checkins "," manage_pages "," read

我用来发布的代码与此类似:

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   videoData,@"video.mov",
                                   @"video/quicktime", @"contentType",
                                   title, @"title",
                                   status, @"description",
                                   nil];

FBRequest* request = [FBRequest requestWithGraphPath:[NSString stringWithFormat:@"%@/videos",@"me"]
                                              parameters:params
                                              HTTPMethod:@"POST"];

    [request setSession:session];

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0ul);
    dispatch_async(queue, ^{
        dispatch_async(dispatch_get_main_queue(), ^(void) {

            [request startWithCompletionHandler:^(FBRequestConnection* conn, id data, NSError* error){
                SSLog(@"DONE!");

                [self processResponseWithData:data requestIdentifier:requestIdentifier andError:error];
            }];
        });
    });

我已更新到最新的SDK版本(3.9),但错误仍然存在。任何机构正在经历此错误?

我是用iOS6和iOS7测试的,所以问题与操作系统版本无关。同样的视频使用iOS-脸书内置功能上传okey。

非常感谢!

共有3个答案

阎宾实
2023-03-14

我不使用key contentType int参数。它与脸书SDK 3.10(最新版本)配合良好

NSData *videoData = [NSData dataWithContentsOfFile:filePath];    
NSString* videoName = [filePath lastPathComponent];
NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
[params setObject:caption forKey:@"description"];
[params setObject:videoData forKey:videoName];

FBRequestConnection *requestConnection = [FBRequestConnection startWithGraphPath:@"me/videos"
                             parameters:params
                             HTTPMethod:@"POST"
                      completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{

}];
有玄天
2023-03-14

上面的答案有效。但请确保您创建了Facebook会话,使用openActiveSessionWithPublishPerams而不是openActiveSessionWithReadPerams。

我花了一天时间在这上面,因为如果你用错了一个,你会得到著名的“(#352)对不起,你选择的视频文件的格式我们不支持。”

无论如何,您真正需要的唯一权限是publish_actions

皮自明
2023-03-14

就在FB请求之前 添加一行以打开FB请求连接为我工作。

[FBRequestConnection startWithGraphPath:@"me/videos" 
    completionHandler:^(FBRequestConnection *connection, 
    id result, NSError *error) 
{
    FBRequest *uploadRequest = 
        [FBRequest requestWithGraphPath:@"me/videos" 
        parameters:params HTTPMethod:@"POST"];
}];
 类似资料:
  • 用消息或图像发布定期帖子对我来说很好,但没有视频 下面是我的代码: 视频和我的js运行文件在同一个文件夹里。

  • 我用iOS SDK把一段视频发到了Facebook的个人资料上,效果很好。但当我尝试使用相同的代码,并将原生视频发布到Facebook页面时,它失败了,出现了以下错误: (#200)应用程序没有发布到目标的权限 “app没有权限发帖到目标”是什么意思?为了在页面上发布视频,我应该使用特殊权限吗? 谢了!

  • 我有一个Facebook页面,我正在尝试上传一个已经托管在我的服务器上的视频。我需要通过javascript来做到这一点,我所拥有的只是视频的src链接(类似于 )。作为管理员,我拥有所有必需的权限()。 facebook api说我必须以的形式发送数据,这意味着视频内容。为了通过ajax实现这一点,我在stackoverflow上回答了这个问题,并学习了如何在jQuery中使用ajax请求发送F

  • 点击代码,完成相关设置后,选择适合自己网站的视频播放代码复制粘贴到要展示的页面中即可观看视频。 代码页面: 设置步骤: 1) 首先设置播放器样式、大小、是否自动播放,点击保存设置; 2)再获取代码,此时将直接读取您的设置,无需再次设置。 我们提供三种代码供您选择使用: · Js代码:Js代码是智能播放代码,支持不同的播放环境,包括电脑、手机等多种终端; · Html代码:Html代码适用于可插入或

  • 我有一个YouTube频道。我想为我的网站添加新功能: 用户使用其google帐户进行身份验证。 用户创建自己的视频播客(使用此小部件),并将其上载到自己的youtube帐户。 之后,我使用YouTube API将用户视频移动到我的频道 有没有可能允许一些用户在我的频道上传他们账户的视频?也许用户可以通过Google Plus做到这一点? 附注:我看过一些文章