api - 带有 paypal api 的客户端无效,使用 HTTPoison.post 的客户端身份验证失败!/3
问题描述
我正在使用 HTTPoison 向 Paypal api 发送请求。这是使用其 api 登录的贝宝文档:https ://developer.paypal.com/docs/log-in-with-paypal/integrate/
当我获得代码并尝试将其交换为访问令牌时,我收到此错误:"{\"error\":\"invalid_client\",\"error_description\":\"Client Authentication failed\"}",
这是 HTTPoison.post!/3 发布请求的方式:
url = "https://api-m.sandbox.paypal.com/v1/oauth2/token"
headers = [
Authorization: "Basic #{ClientID}:#{Secret}"
]
body = "grant_type=authorization_code&code=#{code}"
HTTPoison.post!(url, body, headers)
这显示了astatus_code: 401
和{\"error\":\"invalid_client\",\"error_description\":\"Client Authentication failed\"}",
错误..这个问题如何解决?
解决方案
HTTP 基本身份验证要求对值进行 base-64 编码。尝试这样做:
Authorization: "Basic " <> Base.encode64("#{ClientID}:#{Secret}")
推荐阅读
- git - 反转分支差异 (Git)
- c++ - constexpr 指向处理器固定地址的指针
- python-3.x - 如何将标签值从 csv 文件映射到 numpy ndarray?
- php - Codeigniter 3 迁移:在第一次迁移运行时添加未分类的帖子类别
- node.js - 原始 SQL 与 Express 没有 ORM
- c - 使用未声明的标识符“RD16”
- c# - 在 cpanel 的情况下无法连接到特定主机,但在 localhost 上工作完美
- performance - Kivy 相机速度?性能缓慢
- google-cloud-storage - 为 Google Storage 存储分区中的所有对象设置元数据
- angular - 尽管在此问题的其他答案中遵循了说明,但 ng-bootstrap 未显示工具提示