我正在用golang进行这项工作,整个晚上我都在努力使它工作。我最近的沮丧之处是,尽管我已将许多标头放入请求中,但仍遇到400错误。

 29     req.SetBasicAuth(app.id, app.secret)
 30     req.Header.Set("Host", "www.sandbox.paypal.com")
 31     req.Header.Set("Accept", "application/json")
 32     req.Header.Set("Accept-Language", "en_US")
 33     req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
 34     req.Header.Set("Connection", "close")

我已经设置了身份验证,并且可以考虑添加每个标头。我仔细研究了文档,并尝试戳一下它,看看它是否也可行。这是我在邮寄请求中一直在体内传递的信息
`{"grant_type": "client_credentials"}`

 42     req, err := http.NewRequest(
 43         "POST",
 44         app.Endpoint + oauthEndpoint,
 45         strings.NewReader(`{"grant_type": "client_credentials"}`),
 46     )

如果您需要更多代码,请告诉我。但是我不太确定这会带来很多好处。我也想让这个职位尽可能的笼统。

编辑:

所以看来,尽管事实是我在有效负载中手动指定了grant_type,但由于未识别grant_type而失败了
{"error":"invalid_request","error_description":"grant_type is a required parameter"}

最佳答案

问题是我的读者对象,应该是

strings.NewReader("grant_type=client_identifier")

关于paypal - PayPal OAuth:即使指定了主机,也会出现400错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18429427/

10-12 00:40