2

我有一个完美的驱动集成应用程序,javascript 和 go-based,具有以下范围:

https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile
https://www.googleapis.com/auth/drive

现在我尝试使用 Application 文件夹。如果我不更改我的范围,那么我会按预期得到一个错误,声称应用范围设置不正确。现在我添加以下范围(在 api-console 和我的应用程序中):

https://www.googleapis.com/auth/drive.appdata

现在我不幸在 oauth.updateToken googelapi 函数中收到错误消息,并显示以下错误消息:

OAuthError: updateToken: 400 Bad Request

我是否误解了应如何使用 Application 文件夹?

4

1 回答 1

0

您需要再次向用户显示对话框并检索新令牌而不是更新现有令牌。创建一个新的身份验证代码 URLconfig.AuthCodeURL()并询问用户权限。用户授予权限后,通过调用与 Google 端点交换代码t.Exchange(code)

var config = &oauth.Config{
  ClientId:     "YOUR_CLIENT_ID",
  ClientSecret: "YOUR_CLIENT_SECRET",
  Scope:        "YOUR_SCOPES",
  RedirectURL:  "YOUR_REDIRECT_URI",
  AuthURL:      "https://accounts.google.com/o/oauth2/auth",
  TokenURL:     "https://accounts.google.com/o/oauth2/token",
}

authUrl := config.AuthCodeURL("state")
fmt.Printf("Go to the following link in your browser: %v\n", authUrl)
t := &oauth.Transport{
  Config:    config,
  Transport: http.DefaultTransport,
}

// Read the code, and exchange it for a token.
fmt.Printf("Enter verification code: ")
var code string
fmt.Scanln(&code)
_, err := t.Exchange(code)
if err != nil {
  fmt.Printf("An error occurred exchanging the code: %v\n", err)
}
于 2013-04-09T11:26:35.897 回答