FBConnect / Graph API奇怪的行为

时间:2011-11-29 08:53:44

标签: iphone ios facebook facebook-graph-api

经过长时间的调试,这里发生了什么。 (使用Facebooks Graph API)

当我没有安装facebook应用程序时点击我的帖子到Facebook按钮,登录重定向到safari,登录,并要求允许我的应用程序的permision,然后返回到我的应用程序..完美。

如果我安装了正式的Facebook应用程序,该应用程序将重定向到Facebook应用程序,并在返回我的应用程序之前显示没有对话框,并显示未知错误。

基本上,为什么在身份验证通过应用程序而不是浏览器时,发布功能不起作用?

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

转到Facebook.m文件并在 - (void)authorizeWithFBAppAuth:(BOOL)tryF​​BAppAuth safariAuth:(BOOL)trySafariAuth 方法中注释以下行,

       - (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth
                            safariAuth:(BOOL)trySafariAuth {
         //some line of code for initial setup

    //Comment these lines
          /*UIDevice *device = [UIDevice currentDevice];
            if ([device respondsToSelector:@selector(isMultitaskingSupported)] && [device isMultitaskingSupported]) {
                if (tryFBAppAuth) {
                    NSString *fbAppUrl = [FBRequest serializeURL:kFBAppAuthURL params:params];
                    didOpenOtherApp = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:fbAppUrl]];
                }*/
   //code to open the facebook login page

}

为什么你想要做手段,最初它被设置为在有证书可用性的情况下打开Facebook

答案 1 :(得分:0)

使用Facebook ios SDK这样可以正常使用。

在.h文件中

#import "Facebook.h"

Facebook *facebook;

在.m文件中

  NSArray * permissions = [NSArray arrayWithObjects:
                                 //@"publish_stream",
                                 @"offline_access",
                                 nil];
        [facebook authorize:@"APPID" permissions:permissions delegate:self];



- (void)fbDidLogin {
    //isLoggedIn = YES;
    [self hideActivityLabel];
    [[NSUserDefaults standardUserDefaults] setObject:facebook.accessToken forKey:@"access_token"];
    [[NSUserDefaults standardUserDefaults] setObject:facebook.expirationDate forKey:@"exp_date"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    NSLog(@"login token:");     
    NSLog(facebook.accessToken);

}

- (void)fbDidNotLogin:(BOOL)cancelled {

}