在iphone的facebook中显示权限页面

时间:2010-02-18 13:51:34

标签: iphone facebook permissions

我是iphone开发的新手,我想在登录facebook后显示权限页面。

buttonIndex是我的动作表的索引。

 if(buttonIndex == 1)
 {  
    session = [FBSession sessionForApplication:@"My App key" secret:@"My Key"   delegate:self];
FBLoginDialog* dialog = [[[FBLoginDialog alloc] initWithSession:session] autorelease];
    [dialog show];  

 } 

通过使用这些代码成功登录到Facebook,但我想要权限页面显示,

所以我可以使用,

 - (void)session:(FBSession*)session didLogin:(FBUID)uid 
 {

NSLog(@"User with id %lld logged in.", uid);

 FBPermissionDialog* dialog1 = [[[FBPermissionDialog alloc] init] autorelease];
 dialog1.delegate = self;
 dialog1.permission = @"uid";
 [dialog1 show];

 }

但它不起作用。我在哪里可以放置该代码。  我希望在获得许可后分享我的内容。

如果我退出Facebook,它会进入浏览器,但我想在退出后返回我的应用程序,

请帮帮我,指导我。

2 个答案:

答案 0 :(得分:2)

我会将此dialog1.permission = @"uid";更改为类似的内容  dialog1.permission = @"publish_stream";。因为您要将内容发布到用户流,对吧?

 - (void)session:(FBSession*)session didLogin:(FBUID)uid

登录后,我会首先检查您是否已经拥有发布到用户流的权限,方法是创建FBRequest

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: @"publish_stream", @"ext_perm", nil];
[[FBRequest requestWithDelegate:self] call:@"facebook.users.hasAppPermission" params:params];

您可以在此评估的结果

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

e.g。像这样

if ([request.method isEqualToString:@"facebook.users.hasAppPermission"])
{
    NSString *success = result;

    if ([success isEqualToString:@"1"]) 
    {
        NSLog(@"User has app permission");

        // publish content now
                    ...
    } 
    else
    {   // else ask for permission, opening permission dialog
        ...
    }

答案 1 :(得分:0)

我强烈推荐这个人的教程,Brandon Treb,整合Facebook。他做了一个非常详尽的演示并逐行引导你,所以如果它不起作用,那么你的错误就是它。他的教程让我在不到两个小时的时间里运行起来。

http://brandontreb.com/