我从我的 iOS 应用程序上传视频取得了一些成功。我能够确认 publish_action 权限并处理上传。
ACFacebookPermissionsKey : @[@"email", @"user_videos", @"publish_actions"],
ACFacebookAudienceKey:ACFacebookAudienceEveryone};
成功上传后,我收到来自 Facebook API 的带有 video_id 的响应。由于它是公共视频,因此我将其存储在 dB 中以供以后访问。那么,当我检查返回的 video_ids 时 - 它们看起来不同吗?
通过我的应用上传的视频(登录,公开)的 ID 类似于:4239462546398 通过 Facebook 应用上传的视频(登录,公开)的 ID 类似于:10150495056083275
因此,无论我是否登录 FB,我都可以使用以下 URL 访问 Facebook 应用程序视频上传: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"];
}
}];
}