2014-04-23 105 views
0

下面,我使用登錄代碼,但我得到一個Null響應的Gigya本地登錄,而無需使用Facebook和Twitter帳戶

- (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]; 


} 

回答

3

通常情況下,我們建議你從他們的iOS版的文件下載Gigya's demo XCode project和比較什麼你的演示與演示項目不同。但我相信這個演示項目只能設置爲執行socialLogin,而且您看起來好像在嘗試實施註冊即服務。

不幸的是,沒有提供足夠的信息來真正幫助您診斷您的問題。您將需要提供用於初始化Gigya SDK的代碼以及正在生成的錯誤的任何堆棧跟蹤日誌。

此外,我在這裏意識到您並未使用Facebook Native和Twitter登錄,但我會提供以下反饋,以便您在未來選擇時不會遇到這些問題。

在iOS上執行Facebook登錄時,有一些非常具體的「陷阱」。 Facebook要求Native Mobile應用程序集成並僅使用其本地Facebook登錄流程。如果您正在使用Facebook實施Gigya,則必須遵循Gigya's documentation關於如何啓用Facebook本地登錄,以便Gigya iOS SDK可以正確連接到它。

+0

關於Facebook的要求更改的其他信息可以在這裏找到:(https://developers.facebook.com/blog/post/2013/06/26/october-2013-platform-changes/) – JayReardon

+0

謝謝你這麼多回復..讓我看看它。 – Wodjefer

+1

您是否檢查了響應處理程序中的'error'對象?它說什麼? –

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."); 
    } 
} 
相關問題