Go gmail api令牌过期了如何获取新令牌?
我刚刚实现了Gmail OAuth服务,我可以发送电子邮件,但在它过期一段时间后,我想知道如何自动续费 在这里。这是我的代码:Go gmail api令牌过期了如何获取新令牌?,go,google-api,google-oauth,gmail-api,Go,Google Api,Google Oauth,Gmail Api,我刚刚实现了Gmail OAuth服务,我可以发送电子邮件,但在它过期一段时间后,我想知道如何自动续费 在这里。这是我的代码: func OAuthGmailService() { config := oauth2.Config{ ClientID: "XXXXXX", ClientSecret: "XXXXXX", Endpoint: google.Endpoint, Red
func OAuthGmailService() {
config := oauth2.Config{
ClientID: "XXXXXX",
ClientSecret: "XXXXXX",
Endpoint: google.Endpoint,
RedirectURL: "http://127.0.0.1",
}
token := oauth2.Token{
AccessToken: "XXXXXX",
RefreshToken: "XXXXXX",
TokenType: "Bearer",
Expiry: time.Now(),
}
var tokenSource = config.TokenSource(context.Background(), &token)
srv, err := gmail.NewService(context.Background(), option.WithTokenSource(tokenSource))
if err != nil {
log.Printf("Unable to retrieve Gmail client: %v", err)
}
GmailService = srv
if GmailService != nil {
fmt.Println("Email service is initialized \n")
}
}
首先查找本地令牌
在快速入门文档中:
在getClient
函数中:
func getClient(config*oauth2.config)*http.Client{
//文件token.json存储用户的访问和刷新令牌,并且
//在第一次完成授权流时自动创建
//时间。
tokFile:=“token.json”
tok,err:=tokenFromFile(tokFile)//首先查找本地令牌
如果错误!=零{
tok=getTokenFromWeb(配置)
saveToken(tokFile,tok)
}
返回config.Client(context.Background(),tok)
}
这应足以使用刷新令牌,并注意需要后续登录
我无法通过你的代码判断你的程序中是否有这种逻辑
如果没有,请查看:
有关刷新令牌如何过期的详细信息,例如,它可能是:
用户帐户已超过授予(活动)刷新令牌的最大数量
我投票结束这个问题,因为这是一个与客户服务相关的问题。直接联系供应商寻求帮助。我们无法帮助您解答有关您在该网站上的特定帐户的问题。投票重新开始,因为它与客户服务无关。然而,它确实与如何将GoogleOAuth与Go编程语言结合使用以及理解Oauth2如何与刷新令牌一起工作有关。访问令牌在一小时后过期。需要时,应使用刷新令牌请求新的访问令牌。一个。我不能帮你在围棋中做到这一点,但这可能有助于你可以尝试在文档中挖掘,以帮助你了解如何在围棋中做到这一点。