Bre*_*rse 9 iphone xcode facebook objective-c
我已经在这方面工作了几天,似乎无法在任何地方找到直接的答案或例子.我正试图从我的iPhone应用程序中将视频上传到Facebook.我可以连接到Facebook(并上传图片)没有问题使用:
_facebook = [[Facebook alloc] initWithAppId:kAppID];
_permissions = [[NSArray arrayWithObjects:@"publish_stream", @"offline_access",nil] retain];
[_facebook authorize:_permissions delegate:self];
Run Code Online (Sandbox Code Playgroud)
但是我似乎无法让我的视频上传工作.我目前的代码是:
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];
Run Code Online (Sandbox Code Playgroud)
由于必须将视频上传调用发送到不同的服务器,我将facebook.m文件中的restserver url更改为:
static NSString* kRestserverBaseURL = @"https://api-video.facebook.com/method/";
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,上传崩溃并出现错误:
facebookErrDomain err 353.
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
编辑:
在Zoul的帮助下,我现在实现了以下代码(我没有做任何改变他的上传类和它附带的SDK的版本).请求不再出错,但是没有上传任何内容.
我初始化facebook对象和上传对象:
_facebook = [[Facebook alloc] initWithAppId:kAppID];
_permissions = [NSArray arrayWithObjects:@"publish_stream", @"offline_access",nil];
[_facebook authorize:_permissions delegate:self];
_upload = [[FBVideoUpload alloc] init];
Run Code Online (Sandbox Code Playgroud)
一旦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, @"",
@"test", @"title",
@"upload testing", @"description",
@"EVERYONE", @"privacy",
nil];
[_upload startUploadWithURL:fileURL params:params delegate:self];
}
Run Code Online (Sandbox Code Playgroud)
zou*_*oul 10
我在GitHub上的Facebook SDK的分支中有一个视频上传分支.我好几周都没有触摸它,但它曾经工作正常(只需要旧式身份验证,请参阅此分支).FBVideoUpload类头中有一些注释,但界面几乎是不言自明的.在我的拉取请求下也有一些有用的讨论- 特别是关于api-video群集上的SSL证书可以使整个问题更容易,但我还没有检查代码.
[Rant:很遗憾,Facebook SDK for iOS并没有完全在GitHub上茁壮成长.有许多拉取请求,但官方开发人员似乎永远不会合并任何东西,甚至文档中甚至没有琐碎的拼写错误修复.大部分时间拉动请求只是坐在那里直到被拒绝.
是的,我是否提到视频上传代码是一个混乱的黑客?视频上传代码是一个混乱的黑客.它解析了一些auth令牌,它可能很快就会崩溃,但这是我能让它恢复正常工作的唯一方法.
更新:视频上传分支已不复存在,您现在可以使用官方SDK轻松上传视频:
NSData *videoData = [NSData dataWithContentsOfURL:movieURL];
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
…, @"title",
…, @"description",
…, @"file",
videoData, @"clip.mov",
nil];
[facebook requestWithGraphPath:@"me/videos" andParams:params andHttpMethod:@"POST" andDelegate:self];
Run Code Online (Sandbox Code Playgroud)
这是"正确的方法",以前的解决方案只是暂时的黑客攻击.
| 归档时间: |
|
| 查看次数: |
13568 次 |
| 最近记录: |