1

我的目标是在我的应用程序中制作一个邀请朋友的应用程序按钮。

问题是它要求我登录。这通常不是问题,但在这种情况下,用户已经将他们的登录信息输入到 facebook,以便在应用程序中执行另一个功能。该功能是由目前不可用的其他人编写的。

最终发生的是用户必须登录两次。一次使用对方的功能,一次使用apprequest对话框。我需要以某种方式共享凭据/授权/会话,这样我就不会提示用户登录两次。

我没有看到要在标准应用程序请求对话框代码中传递任何参数来对尝试进行预授权。我认为我可以用 Facebook 对象做一些事情。另外,我对 Objective C 很陌生,所以我对委托的东西的理解真的很薄弱。我一直在看它,但我不知道 facebook 对象作为委托需要什么样的功能。我的理解是,facebook 可以回调委托,本质上是提供异步 ack 或 req 或类似的东西。但是我怎么知道它期望什么样的代表呢?它会传递什么参数?ETC..

无论如何,这是我的应用请求的非常基本的代码块。我不知道从这里去哪里以防止该登录框弹出两次。

Facebook *facebook = [[Facebook alloc] initWithAppId:<#(NSString *)#> andDelegate:<#(id<FBSessionDelegate>)#>]; 
// I realize I have to fill in my own AppID, which I have but I'm not entirely sure about the delegate

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"Come check out my app.",  @"message",
                               nil];

[self.facebook dialog:@"apprequests" andParams:params andDelegate:nil];
4

1 回答 1

1

您需要在实例上设置accessTokenexpirationDate属性Facebook才能重用由其他功能创建的会话。NSUserDefaults您可以使用或类似机制保留这些值。

请注意,有一个新版本的 Facebook SDK (3.0)具有更好的自动会话处理功能。在未来的某个时候,它可能是强制性的,所以当你有机会时,你应该改用它。

于 2012-09-11T17:54:31.053 回答