2009-07-01 67 views
0

我刚开始使用Facebook Connect for iPhone。我已经能够创建一个登录/注销按钮,启动和恢复会话,并更新Facebook的状态。iPhone + Facebook API:如何检测何时需要“扩展权限”?

但是有一件事我找不出当我需要请求扩展权限(如更新用户状态所需的)时,该如何处理。一旦为我的应用程序完成了一次,似乎在服务器端就会记住这一点,并且我不再需要用对话框来对用户进行缺陷。如果我在不需要时弹出对话框,它会短暂显示,然后消失,这会产生恼人的闪烁效果。

所以我的问题是:我怎么能检测到用户(会话?)已经授予这种权限?

回答

4

Facebook连接对他的API一个方法来显示这样的信息:facebook.Users.hasAppPermission

详情请参见文档:http://wiki.developers.facebook.com/index.php/Users.hasAppPermission

要使用FBRequest方法使用调用此API验证码:

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: 
      @"status_update" , @"ext_perm", 
      @"1234" , @"uid", 
      nil]; 

[[FBRequest requestWithDelegate:self] call:@"facebook.users.hasAppPermission" 
             params:params]; 

你只需要通过ext_permuid参数,所有剩下的Facebook Connect会自动解决。

现在要接收结果,你需要实现一个回调方法:

- (void)request:(FBRequest*)request didLoad:(id)result { 

    NSString* StringResult = result; 

    NSLog(@"Query returned %@", StringResult); 
} 

结果将是一个字符串值:“1”,如果你的应用程序它的授权或“0”如果不是。

0

我们开发了一个简化原始Facebook Connect的类,创建一个持久保留在所有应用程序对象上的单个会话对象。还为您提供执行简单任务的简单方法,如登录,注销和发布提要。

一个例子是实现简单的登录,只需调用登录方法的会话对象上:

[fbsession login]; 

此代码将打开一个Facebook连接对话框,询问用户的登录名和密码。如果登录成功,关于此会话的所有信息都将被存储,并且在您的应用程序的任何位置都可轻松访问。

您可以在此下载并查看所有文档:http://code.google.com/p/fbconnectsession/wiki/About