1

我正在尝试使用 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
4

3 回答 3

2

您需要检查几件事:

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

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

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

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

于 2014-11-12T23:50:57.363 回答
1

你会得到什么结果:

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

}];

于 2014-11-04T16:03:22.157 回答
1

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

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

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

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

默认情况下使用美国域。

于 2014-11-20T07:38:00.940 回答