我无法通过 OAuth 使用 Youtube API 进行身份验证。它给了我这个错误:“错误”:CURL 的“invalid_grant”“错误”: “INVALID_REQUEST”,“ERROR_DESCRIPTION”: “缺少必需的参数:grant_type”为GoLang这是我的卷曲代码:curl -i -X POST "https://accounts.google.com/o/oauth2/token" \ -F 'code=CODE_FROM_MY_USER' \ -F 'client_id=MY_CLIENT_ID' \ -F 'client_secret=MY_CLIENT_SECRET' \ -F 'redirect_uri=http://localhost:8080/platform/youtubeCallback.html' \ -F 'grant_type=authorization_code'这是我的 Go 代码,已经过验证可用于 Soundcloud API。func Auth(code string) err { v := url.Values{} v.Set("code", code) v.Set("client_id", "MY_CLIENT_ID") v.Set("client_secret", "MY_CLIENT_SECRET") v.Set("redirect_uri", "http://localhost:8080/platform/youtubeCallback.html") v.Set("grant_type", "authorization_code") params := strings.NewReader(v.Encode()) req, err := http.NewRequest("POST", "https://accounts.google.com/o/oauth2/token", params) if err != nil { return err } req.Header.Add("Accept", "application/json") resp, err := c.Client.Do(req) if err != nil || resp.StatusCode != 200 { return err } json.NewDecoder(resp.Body).Decode(&c.Token) return nil}
2 回答
函数式编程
TA贡献1807条经验 获得超9个赞
事实证明,您需要定义内容类型:
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
- 2 回答
- 0 关注
- 207 浏览
添加回答
举报
0/150
提交
取消