iOS 发布到 Facebook 发布屏幕在身份验证后不显示

Posted

技术标签:

【中文标题】iOS 发布到 Facebook 发布屏幕在身份验证后不显示【英文标题】:iOS Post to Facebook publish screen doesn't show after authentication 【发布时间】:2013-06-05 17:09:25 【问题描述】:

好的。我有一个按钮(如下),我从应用程序中获取一些信息并将其发布到用户的 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];

【问题讨论】:

几个 cmets: 1) 请升级您的 SBJson 副本。您正在使用的课程在多年前被分成了两个;许多,许多个重要的错误已经被修复。 2) 请升级您的代码以使用 ARC。 3)请使用字典静态初始化器以提高可读性(@ @"key": @"value" )。 【参考方案1】:

我拿出了

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

在第一个 IF 语句中,我的问题似乎得到了解决..

【讨论】:

以上是关于iOS 发布到 Facebook 发布屏幕在身份验证后不显示的主要内容,如果未能解决你的问题,请参考以下文章

iOS 上新的 facebook 登录重定向流程

iOS 原生 Facebook 登录在 Mobile Safari 身份验证中失败

如何在 iOS 中以 pageadmin 身份在 Facebook 页面上发布状态提要?

为 iOS SDK 迁移 Facebook 身份验证凭据

iOS:无需离开应用授权即可连接 Facebook

如何制作登录流程IOS应用