【发布时间】:2021-04-21 17:08:34
【问题描述】:
我刚刚实现了 Gmail OAuth 服务,并且可以发送电子邮件,但是过了一段时间它应该过期了,我只是想知道如何自动更新它?
这里。是我的代码:
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")
}
}
【问题讨论】:
-
我投票结束这个问题,因为它是一个与客户服务相关的问题。直接联系供应商寻求帮助。对于有关您在该网站上的特定帐户的问题,我们无法提供帮助。
-
重新投票,因为它与客户服务无关。然而,它确实与如何将 Google Oauth 与 Go 编程语言一起使用以及了解 Oauth2 如何与刷新令牌一起工作有关。访问令牌在一小时后过期,您应该在需要时使用刷新令牌来请求新的访问令牌。一。我无法帮助您执行此操作,但这可能会有所帮助daimto.com/google-3-legged-oauth2-flow
-
您可以尝试在Google apis go client library 中寻找帮助您了解如何在 go 中执行此操作的文档。
标签: go google-api google-oauth gmail-api