우리는 iOS 응용 프로그램에 Google sign을 통합하여 서버에서 Gmail APIs 오프라인으로 액세스하려고합니다.Gmail API 서버 액세스 "invalid_grant"iOS?
우리는 서버에 token_Id
을 제출하지만, 서버 (서버는 자바에) 다음과 같은 예외를 던지고있다 :
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"
}
우리가 다음 코드 아이폰 OS 코드를 사용하는 토큰 ID를 얻으려면
오프라인 액세스를 위해 서버에 user.authentication.idToken
을 보냅니다.
범위는 다음과 같습니다 :
gid?.scopes.append("https://www.googleapis.com/auth/gmail.readonly")
우리는 & serverIds 제대로 필요한 클라이언트 ID를 설정했습니다.
은 GIDSignIn 위해 우리는 속성을 다음 만들었 :
GIDSignIn.sharedInstance().uiDelegate = self
GIDSignIn.sharedInstance().signInSilently()
안녕하세요 DalmTo, 답변 해 주셔서 감사합니다. Gmail을 Google SignIn의 범위로 사용할 수 있습니까? –
내가 아는 한 범위를 추가하여 원하는 범위를 추가 할 수 있습니다. – DaImTo