【问题标题】:iPhone + Facebook API: how to detect when need to ask for "extended permissions"?iPhone + Facebook API:如何检测何时需要请求“扩展权限”?
【发布时间】:2009-07-01 01:29:03
【问题描述】:

我刚开始使用Facebook Connect for iPhone。我已经能够创建登录/注销按钮、启动和恢复会话以及更新 Facebook 状态。

但是我不知道如何做的一件事是检测我何时需要请求扩展权限(例如需要更新用户状态)。一旦为我的应用程序完成了一次,似乎这会在服务器端被记住,并且我不再需要通过对话框来干扰用户。如果我确实在不需要时弹出对话框,它会短暂显示,然后消失,具有令人讨厌的闪烁效果。

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

【问题讨论】:

    标签: iphone facebook


    【解决方案1】:

    Facebook Connect 在他的 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”。

    【讨论】:

      【解决方案2】:

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

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

      [fbsession login];
      

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-07
        • 1970-01-01
        • 1970-01-01
        • 2011-11-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多