【问题标题】:Why can I invoke my API Gateway endpoint from terminal but not from Braintree's console?为什么我可以从终端调用我的 API Gateway 端点,但不能从 Braintree 的控制台调用?
【发布时间】:2017-05-02 01:25:33
【问题描述】:

我有一个调用 lambda 函数的 API 网关。我部署了网关,并通过向端点发送 POST 请求成功地从我的终端调用了该功能。我是这样做的:

curl -H "Content-Type: application/json" -X POST -d "{\"bt_signature\":\"curl\",\"bt_payload\":\"abcsdsddsd\"}"  https://*myendpointurl*

当我在 Braintree 控制台中输入此端点时,虽然作为 webhook url 并单击“检查 url”,但我会弹出以下错误:

Last delivery unsuccessful. Invalid server response 400

奇怪的是,当我从终端调用它时它可以工作,但不是在这里。此外,当我在网络浏览器中输入方法的端点时,它会出现以下错误消息:

{"message":"Missing Authentication Token"}

我已经仔细检查了我正在为这个特定的 POST 方法使用写入端点。奇怪的是它可以在终端上工作,但不能作为 Braintree 中的 webhook url。想法?

【问题讨论】:

  • 我认为这应该交给 Braintree 支持,因为我们无法看到他们发布的内容(不过请查看 CloudWatch Logs)。

标签: amazon-web-services http-post aws-api-gateway braintree


【解决方案1】:

您从浏览器点击时收到“缺少身份验证令牌”的原因是浏览器会发出 GET 请求,而您的 API 是为 POST 方法设置的。当您请求不存在的资源/方法时,API Gateway 将响应“缺少身份验证令牌”。 (Braintree 也可能在内部生成 GET 请求,但我建议您与他们的支持部门联系以确认。)

希望这会有所帮助, 丽蒂莎。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    相关资源
    最近更新 更多