我已经为此工作了几天,但似乎无法在任何地方找到直接的答案或示例。我正在尝试从我的 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.
任何帮助,将不胜感激。
EDIT:
在 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];
然后我在 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];
}