为了账号安全,请及时绑定邮箱和手机立即绑定

Youtube API Invalid Grant 和 Required

Youtube API Invalid Grant 和 Required

Go
慕尼黑的夜晚无繁华 2021-08-10 16:57:54
我无法通过 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")


查看完整回答
反对 回复 2021-08-10
  • 2 回答
  • 0 关注
  • 207 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信