0

遵循我用来登录的代码,但我得到了Null响应

- (IBAction) signInPressed : (id)sender

{

[super signInPressed:sender];


 NSLog(@"ACCLoginViewController_iPhone Sign-IN Pressed");



//Load the Gigya login UI component, passing this View Controller as a delegate.



 GSRequest *request  =  [GSRequest requestForMethod:@"accounts.login"];



[request.parameters setObject:self.emailField.text forKey:@"loginID"];



 [request.parameters setObject:self.passwordField.text forKey:@"password"];



 request.parameters[@"loginID"] = @"email";



[request sendWithResponseHandler:^(GSResponse *response, NSError *error) {


if (!error) {

NSLog(@"the resposne = %@",response);

 }

 else {

  // Check the error code according to the GSErrorCode enum, and handle it.


 NSLog(@"the Error = %@",error.description);


 }

 }];



  //  [self loadTabbar];


}
4

2 回答 2

3

通常,我们建议您从他们的 iOS 文档中下载Gigya 的演示 XCode 项目,并比较您所做的与演示项目的不同之处。但我相信演示项目仅设置为进行 socialLogin,您看起来好像正在尝试实施注册即服务。

不幸的是,没有提供足够的信息来真正帮助您诊断问题。您将需要提供用于初始化 Gigya SDK 的代码以及任何带有正在生成的错误的堆栈跟踪日志。

此外,我在这里意识到您没有使用 Facebook Native 和 Twitter 登录,但无论如何我都会提供以下反馈,以便您在将来选择时不会遇到这些问题。

使用 iOS 实现 Facebook 登录时有一些非常具体的“陷阱”。Facebook 要求 Native Mobile 应用程序集成并且仅使用其本机 Facebook 登录流程。如果您使用 Facebook 实现 Gigya,则必须遵循Gigya 的文档,了解如何启用 Facebook 本地登录,以便 Gigya iOS SDK 可以正确桥接它。

于 2014-04-23T17:51:58.610 回答
1

在应用程序委托中,您将需要以下内容。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [Gigya initWithAPIKey:@"[api key goes here"];
    return YES;
}

在视图控制器中,我目前正在使用对我有用的代码。

- (void)loginUser:(NSString*)email withPassword:(NSString*)password
{
    if (![[Gigya session] isValid]) {
        GSRequest *request = [GSRequest requestForMethod:@"accounts.login"];
        request.parameters[@"loginID"] = email;
        request.parameters[@"password"] = password;

        [request sendWithResponseHandler:^(GSResponse *response, NSError *error) {
            if (!error) {
                NSLog(@"response: %@", response);
                NSString* sessionToken = response[@"sessionInfo"][@"sessionToken"];
                NSString* sessionSecret = response[@"sessionInfo"][@"sessionSecret"];
                GSSession* gigyaSession = [[GSSession alloc] initWithSessionToken:sessionToken secret:sessionSecret];
                [Gigya setSession:gigyaSession];
            }
            else {
                NSLog(@"error: %@", error);
            }
        }];
    }
    else {
        NSLog(@"Already logged in. Logout first.");
    }
}
于 2014-06-04T21:23:05.913 回答