iPhone Facebook视频上传
我一直在为此工作几天,似乎无法在任何地方找到一个直接的答案或例子.我正在尝试从我的iPhone应用程序中将视频上传到Facebook.我可以连接到Facebook(并已上传图片)没有问题使用:
_facebook = [[Facebook alloc] initWithAppId:kAppID]; _permissions = [[NSArray arrayWithObjects:@"publish_stream",@"offline_access",nil] retain]; [_facebook authorize:_permissions delegate:self]; 不过我似乎无法让我的视频上传工作.我当前的代码是: NSString *filePath = [[NSBundle mainBundle] pathForResource:@"TestMovie" ofType:@"mp4"]; NSData *data = [NSData dataWithContentsOfFile:filePath]; NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: data,@"video",nil,@"callback",@"test",@"title",@"upload testing",@"description",@"EVERYONE",@"privacy",nil]; [_facebook requestWithMethodName:@"video.upload" andParams:params andHttpMethod:@"POST" andDelegate:self]; 由于视频上传电话必须发送到不同的服务器,所以我更改了facebook.m文件中的restserver url: static NSString* kRestserverBaseURL = @"https://api-video.facebook.com/method/"; 当我运行这个上传崩溃与错误: facebookErrDomain err 353. 任何帮助将不胜感激. 编辑: 随着Zoul的帮助,我现在已经实现了以下代码(我没有改变他的上传类和SDK的版本).该请求不再收到错误,但没有上传任何内容. 我初始化了Facebook对象和上传对象: _facebook = [[Facebook alloc] initWithAppId:kAppID]; _permissions = [NSArray arrayWithObjects:@"publish_stream",nil]; [_facebook authorize:_permissions delegate:self]; _upload = [[FBVideoUpload alloc] init]; 一旦Facebook登录,我会使用它: - (void)fbDidLogin{ _upload.accessToken = _facebook.accessToken; _upload.apiKey = kApiKey; _upload.appSecret = kApiSecret; NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Test" ofType:@"mp4"]; NSURL *fileURL = [NSURL fileURLWithPath:filePath]; NSData *data = [NSData dataWithContentsOfFile:filePath]; NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: data,@"",nil]; [_upload startUploadWithURL:fileURL params:params delegate:self]; } 解决方法
我在GitHub的Facebook SDK的叉上有一个
video upload branch.我没有触摸它几个星期,但它曾经工作正常(只需要旧式认证,见
this branch).
FBVideoUpload class header中有一些意见,但界面几乎不言自明.还有一些有用的讨论在我的
pull request – 特别是关于api视频集群的SSL证书,可以使整个问题更容易,但我还没有审查的代码.
[Rant:可惜的是,iOS SDK的Facebook SDK在GitHub上并不完美.有很多拉请求,但官方开发人员似乎没有合并任何东西,甚至不是文件中的简单的错字修复.大多数时候拉拉请求只是坐在那里直到被拒绝. 是的,我是否提到视频上传代码是一个凌乱的黑客?视频上传代码是一个凌乱的黑客.它解析了一些认证令牌,并且可能会很快破产,但这是我可以使之恢复正常工作的唯一方法. 更新:视频上传分支不再是现在,您现在可以使用官方SDK轻松上传视频: NSData *videoData = [NSData dataWithContentsOfURL:movieURL]; NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: …,…,@"file",videoData,@"clip.mov",nil]; [facebook requestWithGraphPath:@"me/videos" andParams:params andHttpMethod:@"POST" andDelegate:self]; 这是“正确的方法”?,以前的解决方案只是一个暂时的黑客. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |