我有一个 iPhone 应用程序允许用户录制视频,我希望他们能够在 Facebook 上分享这些视频。
但是,除非用户决定分享,否则我不希望他/她被重定向到 Facebook。我已经尝试过 Facebook iOS 教程中提供的方法,它要求用户在应用启动后立即重定向到 Facebook 并进行身份验证。
那是不必要的。
我想做的是有一个“分享”按钮,允许用户进行身份验证,然后使用POST
请求自动上传视频。
这可能吗?有没有人达到类似的效果?
谢谢。
我有一个 iPhone 应用程序允许用户录制视频,我希望他们能够在 Facebook 上分享这些视频。
但是,除非用户决定分享,否则我不希望他/她被重定向到 Facebook。我已经尝试过 Facebook iOS 教程中提供的方法,它要求用户在应用启动后立即重定向到 Facebook 并进行身份验证。
那是不必要的。
我想做的是有一个“分享”按钮,允许用户进行身份验证,然后使用POST
请求自动上传视频。
这可能吗?有没有人达到类似的效果?
谢谢。
我不确定您正在查看哪个教程,但它可能让您在启动时进行身份验证,就像演示一样。
在您的应用中,您可以在保存视频后使用类似的内容授权您的应用
// Share button action
- (IBAction)sharePressed {
// If user is already authenticated
if ([facebook isSessionValid]) {
[self shareLinkToFacebook];
} else {
// Authenticate with just email permissions
NSArray* permissions = [NSArray arrayWithObjects:
@"email", nil];
[facebook setSessionDelegate:self];
[facebook authorize:permissions];
}
}
- (void) shareLinkToFacebook {
// Create a simple post
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setValue:[video url] forKey:@"link"];
[params setValue:[video title] forKey:@"name"];
[params setValue:@"description" forKey:@"description"];
[facebook dialog:@"feed" andParams:params andDelegate:self];
}
// FBSessionDelegate
- (void) fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:kFBAccessToken];
[defaults setObject:[facebook expirationDate] forKey:kFBExpirationDateKey];
[defaults synchronize];
[self shareLinkToFacebook];
}
您将必须通过 facebook 进行身份验证才能获得访问密钥 - 没有办法解决这个问题。
你不能做你想做的事。要发布某些内容,您必须拥有有效的 access_token。实现这一点的唯一方法是遵循您在官方示例中看到的登录过程。
这个问题的答案在于创建一个同时作为 theFBSessionDelegate
和 the运行的单例,并允许您在程序周围FBRequestDelegate
传递一个实例。Facebook
我打电话给我的单例FacebookVideoUploader
,并在我的应用程序委托中打电话:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [[[FacebookVideoUploader sharedInstance] facebook] handleOpenURL:url];
就是这样。这使应用程序委托保持整洁,让单例处理委托方法。
在我处理视频上传的视图控制器的实现文件中,我放了:
就是这样。所有的委托和会话方法以及 postVideoToFacebook 都在FacebookVideoUploader
单例中处理。
这允许我的用户登录我的应用程序而不会被重定向到 Facebook,并让他们在决定要共享视频后立即进行身份验证。