Gigya facebook登录:未调用完成处理程序

Posted

技术标签:

【中文标题】Gigya facebook登录:未调用完成处理程序【英文标题】:Gigya facebook login: completion handler not called 【发布时间】:2014-11-04 11:32:46 【问题描述】:

我正在尝试使用 Gigya-SDK 通过 facebook 登录应用程序。 Facebook 上的设置看起来不错,并且没有 Gigya 的本机 facebook 登录工作正常。但是,当我在 Facebook 网站上成功登录后调用 Gigya 方法时,永远不会调用完成处理程序。

这是我非常简单的代码:

 [Gigya showLoginProvidersDialogOver:self providers:providers parameters:nil     
                        completionHandler:^(GSUser *user, NSError *error) 
    if (!error) 
         NSLog(@"works");
    
    else 
         NSLog(@"Error: %@", error.userInfo);
        // If the login was canceled by the user - do nothing. Otherwise, display an 
           error.
        if (error.code != GSErrorCanceledByUser) 
            NSLog(@"Error: %@", error.userInfo);
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                            message:@"An error has  
occured. Please try again later"
                                                           delegate:nil
                                                  cancelButtonTitle:@"OK"
                                                  otherButtonTitles:nil];
            [alert show];
        
    
];
ios SDK:8.1 Facebbok-SDK:3.20 Gigya-SDK:3.0.6

【问题讨论】:

我遇到了同样的事情。它适用于 Google 和 Yahoo,但 Facebook 从不调用 completionHandler。 【参考方案1】:

您需要检查以下几点:

    您在 Gigya 控制台中为所使用的 API 密钥设置的权限。您需要确保为您使用的 API 密钥启用了“启用桌面/移动设备使用”权限集。

    Gigya 控制台中的 Facebook 提供程序配置设置,用于正在使用的 API 密钥。 Gigya 将在提供程序配置中默认选择 Facebook API v1;如果您的 Facebook 社交网络应用是新的,那么它将使用 API 的 v2。您需要确保选择了正确的设置。

    如果您使用的是 CNAME,那么您需要确保在 API 密钥上正确设置了 CNAME CNAME 配置,并且您的 Facebook 开发者控制台设置已配置为使用 CNAME。

如果您进行任何更改,请务必在更改屏幕之前保存设置。

【讨论】:

【参考方案2】:

你会得到什么结果:

[Gigya loginToProvider:@"facebook"
parameters:nil
completionHandler:^(GSUser *user, NSError *error) 
    if (!error) 
        NSLog(@"works");
    
    else 
        NSLog(@"error");
    

];

【讨论】:

同上。 completionHandler 永远不会被调用。也尝试与代表团一起没有运气 当我执行这个 loginToProvider 方法时,我可以提出一个基于 UIWebview 的对话框,登录到 Facebook,接受 Facebook 的权限,然后完成处理程序似乎永远不会执行。有没有人在使用 Gigya SDK for iOS 时克服了这个问题?【参考方案3】:

经过几次尝试,我找到了对我有帮助的解决方案。

 [Gigya  initWithAPIKey:@"-----------------" APIDomain:@"eu1.gigya.com"];

我必须输入正确的 APIDomain。 Gigya 的文档仅指

[Gigya  initWithAPIKey:@"-----------------"];

默认使用美国域。

【讨论】:

以上是关于Gigya facebook登录:未调用完成处理程序的主要内容,如果未能解决你的问题,请参考以下文章

Titanium Facebook 模块未在 iOS 7 上完成登录

FBSDKLoginManager logInWithReadPermissions:fromViewController:处理程序:应用程序首次运行时未调用完成

Parse.com Facebook 授权从不调用完成处理程序

使用 Gigya Android Sdk 实现“使用 Apple 登录”WebBridge

隐藏时未调用委托方法

Facebook登录一直失败