Google signを私たちのiOSアプリケーションに統合しました。サーバーからGmail APIsオフラインにアクセスします。Gmail APIサーバーのアクセス「invalid_grant」iOS?
私たちは、サーバーへtoken_Id
を提出しているが、サーバーは(サーバーがJavaである)、次の例外がスローされます。
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
if (error == nil) {
let idToken = user.authentication.idToken
let fullName = user.profile.name
print("Connected for user: \(fullName)")
print("Id Token: \(idToken)")
setAppUserContext(userId: idToken!)
} else {
print("\(error.localizedDescription)")
}
}
:
com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request
{
"error" : "invalid_grant",
"error_description" : "Bad Request"
}
は、我々は次のコードiOSのコードを使用しているトークンIDを取得するには
オフラインアクセス用にuser.authentication.idToken
をサーバーに送信しています。
範囲は以下の通りです:
gid?.scopes.append("https://www.googleapis.com/auth/gmail.readonly")
我々は&のServerID正しく、必要なクライアントIDを設定しています。 GIDSignInについては
私たちは、次のプロパティを作っています
GIDSignIn.sharedInstance().uiDelegate = self
GIDSignIn.sharedInstance().signInSilently()
Hey DalmTo、 ご回答ありがとうございます。 GmailをGoogle SignInのスコープとして使用できますか? –
私が知っている限り、スコープの範囲を追加することができます。 – DaImTo