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