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

无法在 golang 中完成 GitHub 的 oauth Web 工作流程

无法在 golang 中完成 GitHub 的 oauth Web 工作流程

Go
回首忆惘然 2021-09-13 10:19:02
我正在尝试在 golang 中为 GitHub 实现 oauth-workflow 并使用https://github.com/franela/goreq来执行 http(s) 请求。有一个部分,GitHub 返回 a code,您必须使用,和POST向https://github.com/login/oauth/access_token发出请求。codeclient_idclient_secretpackage mainimport "fmt"import "github.com/franela/goreq"type param struct {  code string  client_id string  client_secret string}func main() {  params := param {code: "XX", client_id:"XX", client_secret: "XX"}  req := goreq.Request{    Method : "POST",    Uri : "https://github.com/login/oauth/access_token",    Body : params,  }  req.AddHeader("Content-Type", "application/json")  req.AddHeader("Accept", "application/json")  res, _ := req.Do()  fmt.Println(res.Body.ToString())}它总是404带着{"error":"Not Found"}信息给予。在使用 Python 时,我使用相同的输入数据获得了正确的结果。
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

您正在生成空的 JSON 对象。您的结构字段应以大写字母开头,以便 JSON 编码器能够对其进行编码。


type goodparam struct {

    Code         string `json:"code"`

    ClientId     string `json:"client_id"`

    ClientSecret string `json:"client_secret"`

}

看到这个在行动。


查看完整回答
反对 回复 2021-09-13
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

你应该仔细检查你的'client_secret'和'client_id'(必须是正确的,因为你得到了代码)如果它是正确的,显然Github如果错误则返回HTTP状态代码404。


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

添加回答

举报

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