1
我們在我們的iOS應用程序中集成了Google sign,我們希望從服務器離線訪問Gmail APIs。Gmail API服務器訪問「invalid_grant」iOS?
我們提交token_Id
到服務器,但是服務器拋出以下異常(服務器是在Java中):
com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request
{
"error" : "invalid_grant",
"error_description" : "Bad Request"
}
爲了讓我們用下面的代碼的iOS代碼的令牌標識:
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)")
}
}
我們正在向服務器發送user.authentication.idToken
以進行離線訪問。
範圍是如下:
gid?.scopes.append("https://www.googleapis.com/auth/gmail.readonly")
我們& serverIds正確設置所需的clientID的。
對於GIDSignIn我們做了以下屬性:
GIDSignIn.sharedInstance().uiDelegate = self
GIDSignIn.sharedInstance().signInSilently()
Hey DalmTo, 感謝您的回覆。我們可以使用Gmail作爲Google SignIn中的範圍嗎? –
據我所知,你可以添加任何你希望的範圍,只需在它們之間增加空間。 – DaImTo