__block ACAccount * facebookAccount; ACAccountStore* accountStore = [[ACAccountStore alloc] init]; NSDictionary *options = @{ ACFacebookAppIDKey: @"MY APP ID",ACFacebookPermissionsKey: @[@"publish_actions",],@"ACFacebookAudIEnceKey": ACFacebookAudIEnceFrIEnds }; ACAccountType *facebookAccountType = [accountStore accountTypeWithAccountTypeIDentifIEr:ACAccountTypeIDentifIErFacebook]; [accountStore requestAccesstoAccountsWithType:facebookAccountType options:options completion:^(BOol granted,NSError *error) { if (granted) { NSArray *accounts = [accountStore accountsWithAccountType:facebookAccountType]; facebookAccount = [accounts lastObject]; NSLog(@"access to facebook account ok %@",facebookAccount.username); NSData *vIDeoData = [NSData dataWithContentsOffile:[self vIDeofileFullPath]]; NSLog(@"vIDeo size = %d",[vIDeoData length]); NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: vIDeoData,@"vIDeo.mov",@"vIDeo/quicktime",@"ContentType",@"VIDeo Title",@"Title",@"VIDeo description",@"description",nil]; NSURL *requestURL = [NSURL URLWithString:@"https://graph.facebook.com/me/vIDeos"]; SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodPOST URL:requestURL parameters:params]; request.account = facebookAccount; [request performRequestWithHandler:^(NSData *data,NShttpURLResponse *response,NSError * error){ NSLog(@"response = %@",response); NSLog(@"error = %@",[error localizedDescription]); }]; } else { NSLog(@"access to facebook is not granted"); // extra handling here if necesary } }];
解决方法 这是我的研究:Terminating app due to uncaught exception
‘NSinvalidargumentexception’,reason: ‘-[NSConcreteData
_fastCharacterContents]: unrecognized selector sent to instance 0x2097ead0’
首先,视频数据不能成为参数列表的一部分,因为它会使SLRequest无效,这就是您遇到的崩溃.
视频数据必须包含在请求的多部分部分中.
现在,需要将参数与多部分数据相关联,这是棘手的部分.因此有必要使用source属性来建立该链接.
Source需要一个字符串格式的URL,在参数中设置它,并在multipart请求的filename字段中设置相同的值.
应该这样做.
NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/me/vIDeos"];NSURL *vIDeoPathURL = [[NSURL alloc]initfileURLWithPath:vIDeoPath isDirectory:NO];NSData *vIDeoData = [NSData dataWithContentsOffile:vIDeoPath];Nsstring *status = @"One step closer.";NSDictionary *params = @{@"Title":status,@"description":status};SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodPOST URL:url parameters:params];[request addMultipartData:vIDeoData withname:@"source" type:@"vIDeo/quicktime" filename:[vIDeoPathURL absoluteString]];总结
以上是内存溢出为你收集整理的使用iOS6 Social Framework将视频上传到Facebook全部内容,希望文章能够帮你解决使用iOS6 Social Framework将视频上传到Facebook所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)