Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过身份验证正确调用此API?[Python/JSON]_Javascript_Python_Json - Fatal编程技术网

Javascript 如何通过身份验证正确调用此API?[Python/JSON]

Javascript 如何通过身份验证正确调用此API?[Python/JSON],javascript,python,json,Javascript,Python,Json,我的python还可以,但在理解API方面我很糟糕,我真的很难理解如何验证我对这个特定库的调用。我知道在收到JSON数据时如何处理它,但我甚至无法正确访问JSON,因为我无法验证对该库的调用,而且除了实际文档之外,没有任何在线编写的内容 我尝试过使用HTTPDigestAuth和OAuth1和2,但都没有用。 以下是文档: 在文档的顶部,它表示剩余的URI是 我一直在输入我的api密钥和密钥,但是json返回失败的身份验证尝试,我知道这意味着我没有正确地进行身份验证。我的尝试是: import

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

我尝试过使用HTTPDigestAuth和OAuth1和2,但都没有用。 以下是文档:

在文档的顶部,它表示剩余的URI是 我一直在输入我的api密钥和密钥,但是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、密钥和密钥正确地对其进行身份验证?

我对您的API没有经验,但我确实注意到在上有一个带有python示例的github repo。python_ws_example.py最近进行了更新,看起来您可以轻松插入密钥

如果是我(而你不在Windows上,或者在Windows上设置了使用curl),我会首先尝试验证我的帐户凭据是否有效。最简单的方法是尝试中所示的一个curl示例,因为执行curl命令非常简单。您不必为整个shell脚本操心,只需抽出一行,例如:

curl -H "X-API-KEY:yourapikeyhere" -H "X-API-SECRET:yoursecrethere" -X POST "https://api.coinigy.com/api/v1/exchanges"
编辑以获取更多信息:

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

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
此代码段是使用在{type:history}上找到的示例参数等信息作为参考而组合在一起的。它演示了API请求所需的3件事:(1)在头中传递的身份验证信息,(2)restful端点(上面的API_url值),它标识了在哪里可以找到您要查找的信息类型(3)一些参数,这些参数准确地传达了您希望从该端点获取的数据

听起来端点是一个概念,它有助于为您澄清。通常,restful api将有一个基本url,如本例中所示。通过API公开的每种信息都有其自己的端点,从本质上说,您可以在这里访问输入参数以请求该信息。您可以浏览API文档参考标题下左侧菜单中通过Conigy API公开的所有信息。例如“账户功能”和“市场数据”


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

这在curl中工作得非常好。在这一点上,我只是想我可能只是卷曲到一个JSON文件在我的桌面上,并与它的工作。至于他们提供的示例,我现在已经尝试使用头身份验证:
import-requests-url=”https://api.coinigy.com/api/v1/data“headers={'X-API-KEY':'202a087985b7f55eed4cd8b79ae0b','X-API-SECRET':'105e1c8f5eb63670920b90f2aee73'}r=requests.get(url,headers=headers)打印(r.json())
并接收错误:{'err_num':'1057-14-01','err_msg':'Missing or empty parameters:'}我在python中该怎么做?忽略上面的注释:您的示例工作得很好的原因似乎是因为它引用了“”,而不是“”。我想知道的是,您是如何知道如何将其与数据相对,以及我如何知道要访问哪些工作的?API说/data是有效的,但显然不是。您好,添加了有关API请求的不同组件的更多信息,还解释了/Exchange与/data之间的区别,因为它们是不同的端点从服务请求不同的信息。我没有这方面的密钥,因此我无法测试我自己添加的代码片段,但请告诉我它是如何运行的。非常感谢M Doe,你是最好的!工作非常出色。