javascript - 如何通过身份验证正确调用此 API? [ python /JSON]

标签 javascript python json

我的 python 还不错,但在理解 API 方面我很糟糕,而且我真的很难理解如何验证我对这个特定库的调用。当我收到 JSON 数据时,我知道如何处理它,但我什至无法正确访问 JSON,因为我无法验证对该库的调用,并且除了实际文档之外没有在线编写的任何内容。

我试过使用 HTTPDigestAuth 和 OAuth1 和 2,但都无济于事。 这是文档: https://coinigy.docs.apiary.io/#reference/market-data/market-data

在文档的顶部,它说 REST URI 是 https://api.coinigy.com/api/v1/ 我一直在输入我的 api key 和 key ,但 json 返回失败的身份验证尝试,我知道这意味着我没有正确验证。我的尝试是:

import requests

url = 'https://api.coinigy.com/api/v1/'
payload = {'X-API-KEY': '', 'X-API-SECRET': ''}


r = requests.get(url, params=payload)
print(r.json())

这实际上需要什么类型的身份验证,我如何使用 URL、 key 和 secret key 正确地对其进行身份验证?

最佳答案

我没有使用您的 API 的经验,但我确实注意到在 https://github.com/coinigy/api 有一个带有 python 示例的 github 存储库。 . python_ws_example.py 最近更新了,看起来您可以轻松插入 key 。

如果是我(并且您不在 Windows 上或没有设置为在 Windows 上使用 curl),我会首先尝试验证我的帐户凭据是否有效。最简单的方法是尝试在 https://github.com/coinigy/api/blob/master/curl_examples.sh 中显示的 curl 示例之一。 ,因为执行 curl 命令非常简单。您不必费心处理整个 shell 脚本,只需取出一行,例如:

curl -H "X-API-KEY:yourapikeyhere" -H "X-API-SECRET:yoursecrethere" -X POST "https://api.coinigy.com/api/v1/exchanges"

编辑更多信息:

使用数据端点的示例 API 调用。您必须使用您自己的有效 key 执行,因为我还没有注册一个有效 key ,但即使没有有效 key ,请求响应也是 200 OK 和一条关于无效 key 的标准错误消息,因此它应该适合您。

import requests
api_url = 'https://api.coinigy.com/api/v1/data'
headers = {
  'Content-Type': 'application/json',
  'X-API-KEY': '202a087985b7f55eed4cd8b79ae0b',
  'X-API-SECRET': '105e1c8f5eb63670920b90f2aee73'
}
params=  {
    "exchange_code": "GDAX",
    "exchange_market": "BTC/USD",
    "type": "history"
  }
r = requests.get(url=api_url, headers=headers)
print r.content

此代码段是使用在 https://coinigy.docs.apiary.io/#reference/market-data/market-data/data- 中找到的样本参数等信息组合在一起的{type:history} 作为引用。它演示了 API 请求所需的 3 件事:(1) 在 header 中传递的身份验证信息,(2) 一个 Restful 端点(上面的 api_url 值),它标识了在哪里可以找到您正在寻找的信息类型( 3) 一些参数可以准确传达您希望从该端点获取哪些数据。

听起来端点是一个有助于您澄清的概念。通常,restful api 会有一个基本 url,例如 https://api.coinigy.com/api/v1在这种情况下。通过 API 公开的每种信息都将有自己的端点,您基本上可以从该端点转到输入参数以请求该信息。在 API 文档的引用标题下的左侧菜单中,您可以浏览通过 Coinigy API 公开的各种信息。例如“账户功能”和“市场数据”。

当您单击该 API 文档菜单上的市场数据或任何其他主要类别时,您将看到受支持的特定 API 调用。在市场数据下,有一个数据{type:history}的条目,当你点击它时,你可以看到这种信息的端点是https://api.coinigy.com/api/v1/data。 .事实上,这里的文档真的很棒,向您展示了很多信息,例如如何使用参数。 (确实有非常糟糕的 API 文档,幸运的是这不是其中之一。)

关于javascript - 如何通过身份验证正确调用此 API? [ python /JSON],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48050595/

相关文章:

javascript - JSON:解析数组的名称(而不是值)

javascript - 添加和删​​除文本到从下拉列表填充的跨度

javascript - 如何在创建新元素时将点击处理程序添加到它?

python - python中的生成器错误

python - 如何使用 isalpha() 将非字母字符替换为空格?

python - 为什么在解析 JSON 时应该首选 json.loads 而不是 ast.literal_eval?

sql - 如何查询空对象的 json 列?

javascript - 如何立即执行 promise

Python Elasticsearch,RequestError : TransportError(400, u'search_phase_execution_exception') 间歇性发生。为什么?

javascript - 如何将来 self 正在使用的 API 的 JSON 响应分配给页面上的元素?