我在 AppEngine 中运行了一些相当简单的 Go 代码,它们应该使用 OAuth2 从用户帐户中获取文件列表。似乎可以正常初始化服务,但是当它尝试获取文件列表时,出现此错误: OAuthError: RoundTrip: no Token providedpackage fooimport ( "appengine" "appengine/urlfetch" "code.google.com/p/goauth2/oauth" "code.google.com/p/google-api-go-client/drive/v2" "fmt" "net/http")var config = &oauth.Config{ ClientId: "(redacted).apps.googleusercontent.com", ClientSecret: "REDACTED", Scope: "https://www.googleapis.com/auth/drive", AuthURL: "https://accounts.google.com/o/oauth2/auth", TokenURL: "https://accounts.google.com/o/oauth2/token",}func init() { http.HandleFunc("/", home)}func home(w http.ResponseWriter, r *http.Request) { c := appengine.NewContext(r) transport := &oauth.Transport{ Config: config, Transport: &urlfetch.Transport{Context: c}} svc, err := drive.New(transport.Client()) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } q := svc.Files.List() _, err = q.Do() if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } fmt.Fprintf(w, "Success!")}我无法弄清楚我在这里做错了什么。任何帮助将不胜感激。
2 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
令牌配置不够;您首先必须通过以下步骤获得有效的访问令牌:
将用户重定向到AuthCodeURL返回的页面。用户将看到您的应用程序名称和请求的权限。
如果用户授予权限,他们将被重定向到您在配置中提供的RedirectURL。该 URL 将包含一个名为 的查询参数
code
。检索
code
参数并将其传递给Exchange。如果一切顺利,现在应该正确验证请求。
- 2 回答
- 0 关注
- 224 浏览
添加回答
举报
0/150
提交
取消