2014-11-04 173 views
1

我試圖使用Gigya-SDK通過Facebook登錄應用程序。 Facebook上的設置看起來不錯,沒有Gigya的本地facebbook登錄工作正常。但是,當我調用Gigya方法時,Facebook網站上成功登錄後的完成處理程序永遠不會被調用。Gigya facebook登錄:完成處理程序未調用

這裏是我的代碼非常簡單:

[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
+0

我遇到了同樣的事情。它適用於谷歌和雅虎,但Facebook永遠不會調用completionHandler。 – 2014-11-19 14:19:17

回答

1

經過幾次嘗試,我已經有幫助我的解決方案。我不得不把正確的APIDomain。 Gigya的文檔僅指

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

默認情況下使用US域。

1

什麼結果你得到這個:

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

}];

+0

同上。 completionHandler永遠不會被調用。 – 2014-11-04 16:32:20

+0

當我執行這個loginToProvider方法時,我可以提出一個基於UIWebview的對話框,登錄到Facebook,接受Facebook的權限,然後completionHandler似乎永遠不會執行。有沒有人克服了使用Gigya SDK for iOS的問題? – jcpennypincher 2016-10-07 17:43:54

2

有您需要檢查一些事情:正在使用的的Gigya控制檯的API密鑰

  1. 你的權限設置。您需要確保將「啓用桌面/移動設備」權限設置爲啓用您正在使用的API密鑰。

  2. 正在使用的API密鑰的Gigya控制檯中的Facebook Provider配置設置。 Gigya將在供應商配置中默認選擇Facebook API v1;如果您的Facebook社交網絡應用程序是新的,那麼它將使用API​​的v2。您需要確保您選擇了正確的設置。

  3. 如果您使用的是CNAME,那麼您需要確保CNAME CNAME配置在API密鑰上正確設置,並且您的Facebook Developer Console設置配置爲使用CNAME。

如果您進行了任何更改,請務必在更改屏幕之前保存設置。