gpt4 book ai didi

curl - Youtube API 无效授权和必需参数丢失 : grant_type

转载 作者:IT王子 更新时间:2023-10-29 01:39:52 27 4
gpt4 key购买 nike

我在通过 OAuth 对 Youtube API 进行身份验证时遇到问题。它给了我这个错误:

  • “错误”:CURL
  • 的“invalid_grant”
  • “错误”:“无效请求”,
    “error_description”:GoLang
  • 的“缺​​少必需参数:grant_type”

这是我的 CURL 代码:

curl -i -X POST "https://accounts.google.com/o/oauth2/token"\
-F '代码=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
}

最佳答案

原来你需要定义内容类型:

req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

关于curl - Youtube API 无效授权和必需参数丢失 : grant_type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25451805/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com