我正在用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/