验证后,iOS Post to Facebook发布屏幕不显示

时间:2013-06-05 17:09:26

标签: iphone ios nsuserdefaults facebook-ios-sdk sbjson

Alrighty。我有一个按钮(下面),我从应用程序中获取一些信息,然后将其发布到用户FB提要。

它几乎从未第一次运作。他们通常会在那之后很好地工作。会发生什么事情,当我按下按钮时它告诉我我已经给了应用程序使用FB的权限(我只想第一次看到,而不是每次都看到)。然后,当我从那里按OK时,它将返回到应用程序,或者它将显示我可以实际发布到我的墙上的页面(这是我想要的)。

我正在尝试不同的方法来让这个工作更加一致。这里有什么东西会导致这种行为吗?

-(IBAction)fbButton:(id)sender {

    if (![facebook isSessionValid]) {
        [facebook authorize:permissions];
        [permissions release];
    }

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@"FBAccessTokenKey"] 
        && [defaults objectForKey:@"FBExpirationDateKey"]) {
        facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
        facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
    }

    //Post to Wall

    NSString *poopDollas = [[NSString alloc] initWithFormat:
                         @"sometext $%@!",dollas.text];

    SBJSON *jsonWriter = [[SBJSON new] autorelease];

    // The action links to be shown with the post in the feed
    NSArray* actionLinks = [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:
                                                      @"Get Started",@"name",@"http://www.facebook.com/pages/xx/204640386498567",@"link", nil], nil];
    NSString *actionLinksStr = [jsonWriter stringWithObject:actionLinks];
    // Dialog parameters
    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"DM", @"name",
                                   poopDollas, @"caption",
                                   @"sometext", @"description",
                                   @"http://www.facebook.com/pages/xx/204640386498567", @"link",
                                   @"http://farm8.staticflickr.com/7185/6999841878_e66a8e00fc_t.jpg", @"picture",
                                   actionLinksStr, @"actions",
                                   nil];

    FBDialog *delegate = (FBDialog *)[UIApplication sharedApplication].delegate;

    [facebook dialog:@"feed" andParams:params andDelegate:(id <FBDialogDelegate>)delegate];
}

1 个答案:

答案 0 :(得分:0)

我拿出了

[facebook authorize:permissions];
[permissions release];

在第一个IF声明中,我的问题似乎已经解决了......