我从iOS应用上传视频取得了一些成功。我能够通过上传确认publish_action权限和进程。
ACFacebookPermissionsKey : @[@"email", @"user_videos", @"publish_actions"],
ACFacebookAudienceKey:ACFacebookAudienceEveryone};
成功上传后,我会通过video_id从Facebook API获得回复。我将其存储在dB中,以便稍后访问,因为它是一个公共视频。那么,当我检查返回的video_ids时 - 它们看起来有所不同?
通过我的应用上传的视频(已登录,公开)的ID类似于: 4239462546398 通过Facebook App上传的视频(已登录,公开)的ID类似于: 10150495056083275
因此,无论我是否使用以下网址登录FB,我都可以访问Facebook App视频上传: http://www.facebook.com/video/video.php?v=10150495056083275
我无法使用Facebook创建的video_id访问通过我的iOS应用上传的视频: http://www.facebook.com/video/video.php?v=4239462546398
我需要知道我在视频上传时出错了什么?即使我把它设置为公开等等......我似乎无法看到我的视频????
有关我的环境的一些细节:
为iOS 6构建
使用iOS 6 FB集成
使用SLRequest上传视频(成功请求/响应)
以下是视频帖子的代码,如果它有帮助(并且有效)
- (void) uploadFBVideo2:(NSURL*) filePath
{
ANVideoMashManager *videoMashManager = [ANVideoMashManager sharedManager];
NSURL *videourl = [NSURL URLWithString:@"https://graph.facebook.com/me/videos"];
NSData *videoData = [NSData dataWithContentsOfURL:filePath];
NSDictionary *params = @{
@"title": videoMashManager.videoStoryTitle,
@"description": videoMashManager.videoDescTitle
};
SLRequest *uploadRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodPOST
URL:videourl
parameters:params];
[uploadRequest addMultipartData:videoData
withName:@"video"
type:@"video/mov"
filename:[filePath absoluteString]];
uploadRequest.account = facebooAccount;
[uploadRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
if(error){
NSLog(@"Video Upload ERROR: %@", error.localizedDescription);
}else{
NSLog(@"Video Upload SUCCESS: %@", responseString);
NSDictionary* jsonResponse = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
NSString *videoId = [jsonResponse objectForKey:@"id"];
}
}];
}