问题标签 [mtgox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 通过 http-conduit-0.1.9.3 访问 Mt Gox API:查询字符串导致超时
我正在尝试使用http-conduit访问 Mt Gox REST API 。仅具有路径的查询(例如https://data.mtgox.com/api/2/BTCUSD/money/ticker)可以正常工作,但是当我向请求中添加 queryString 时,它会超时。
所以这有效:
但这超时:
区别似乎在于查询字符串的使用:当我将虚假查询“foo = bar”添加到也超时的currencyTicker时。
然而,所有这些在 Web 浏览器中都可以正常工作:转到https://data.mtgox.com/api/2/BTCUSD/money/ticker?foo=bar会立即返回正确的错误消息,而不是超时。交易获取 URL 也可以工作,尽管我不会包含链接,因为“since”参数说明了可以追溯到多远。相反,如果我从交易列表请求中删除 queryString,它会正确返回整个可用交易历史。
所以关于 http-conduit 查询字符串的东西显然是不同的。有谁知道它可能是什么?
这是正在发送的 Haskell Request 对象(由“Show”打印):
根据其返回的标头,Mt Gox 正在使用 cloudflare-nginx 和 PHP 5。
编辑:忘了提到,当我使用 http-conduit 向http://scooterlabs.com/echo发送带有 queryString 的请求时,我也得到了正确的响应,所以这似乎是 Mt Gox 网络服务器和http-管道。
api - 使用 Python 连接到 MtGox API 2 的问题
我正在编写一个交易程序,我需要通过 API v2 连接到 MtGox(比特币交易所)。但我不断收到以下错误:
网址:1 https://data.mtgox.com/api/2/BTCUSD/money/bitcoin/address
HTTP 错误 403:禁止。
我的大部分脚本都是从这里直接复制的(即 pastebin 链接)。我只需要更改它以使用 Python 3.3。
我怀疑这与我使用 base64.b64encode 的脚本部分有关。在我的代码中,我必须将我的字符串编码为 utf-8 才能使用 base64.b64encode:
但是,对于其他人的脚本,他没有:
我想知道额外的编码是否导致我的标头凭据不正确。我认为这是另一个 Python 2 v. Python 3 问题。我不知道其他人如何在不更改为 utf-8 的情况下逃脱,因为如果您尝试将字符串传递给 b64encode 或 hmac,脚本将不会运行。你们看到我在做什么有什么问题吗?输出代码是否等效?
node.js - 使用 MtGox 的 Streaming API 进行身份验证的命令
我正在使用带有 socket.io-client 的 nodejs 连接到此处描述的 MtGox Streaming API:https ://en.bitcoin.it/wiki/MtGox/API/Streaming#Authenticated_commands
这些示例是用 php 编写的,我尽力将它们转换为 JS,但我不断收到来自服务器“无效调用”的响应
任何帮助,将不胜感激。
c# - HttpWebRequest.GetResponse() 不断超时
我编写了一个简单的 C# 函数,通过以下 API 调用从 MtGox 检索交易历史:
记录在这里:https ://en.bitcoin.it/wiki/MtGox/API/HTTP/v1#Multi_currency_trades
这是功能:
我从 tid=0 (trade id) 开始获取数据(从一开始)。对于每个请求,我都会收到包含 1000 个交易详细信息的响应。我总是从上一个响应中为下一个请求发送交易 ID。它适用于恰好 4 个请求和响应。但在那之后,以下行抛出“System.Net.WebException”,表示“操作已超时”:
以下是事实:
- 捕获异常并重新绑定不断导致相同的异常
- 默认的 HttpWebRequest .Timeout 和 .ReadWriteTimeout 已经足够高(超过一分钟)
- 将 HttpWebRequest.KeepAlive 更改为 false 也没有解决任何问题
- 即使功能失败,它似乎也总是在浏览器中工作
- 从https://www.google.com检索响应没有问题
- 异常之前的成功响应数量每天都在变化(但浏览器始终有效)
- 从上次失败的交易 id 开始立即导致异常
- 从主线程调用此函数仍然导致异常
- 在另一台机器上运行它不起作用
- 从不同的 IP 运行它不起作用
- 在请求之间增加 Thread.Sleep 无济于事
有什么想法可能是错的吗?
javascript - Highcharts 不会显示数据
我正在从 mtgox api 中提取数据,我可以在控制台中看到所有数据都正确到达了我的图表。但是,我无法让数据显示在我的图表上。感谢任何帮助。
javascript - 使用 socket.io 从 Mt. Gox 的“现在”值获取日期/时间?
我https://socketio.mtgox.com/mtgox
使用 socket.io ( https://socketio.mtgox.com/socket.io/socket.io.js ) 连接,它返回了一个如下所示的对象:
我正在寻找活动的时间和日期。有now:
,这似乎是时间戳,但new Date(1371584138359638);
返回Wed Oct 09 45433 05:59:19 GMT-0400 (EDT)
45,433 年表明我错了。
我检查了https://en.bitcoin.it/wiki/MtGox/API/Streaming#Depth,并now:
出现在对象中,但在下面的描述中没有描述。
有什么想法/建议吗?
haskell - 连接到 Haskell 中的 websocket 时如何添加标头
我正在尝试创建一个 WebSocket 客户端以连接到现有服务器(mtgox api)。
作为一个起点,为了弄清楚连接到 WebSockets,我找到了这个示例代码https://github.com/jaspervdj/websockets/blob/master/example/client.hs
问题是 Mtgox 需要在连接时发送标头,我只是不确定如何发送它们。
更新:为了帮助解决这个问题,我也创建了一个简单的 websocket 服务器。当我从 Chrome JavaScript 控制台通过 JavaScript WebSocket 连接到它时,我看到以下标题:
然而,当我通过 Haskell 客户端连接时,我只看到以下标题:
我不知道 MtGox 实际需要哪些标头,但我的计划是只发送与 Chrome 发送的相同的标头,因为这样可以。
java - 尝试向 MtGox api 发布请求时出现 403 响应
我收到 403 错误,所以我知道它可能与身份验证有关,但我似乎无法弄清楚。我一直在遵循网站https://bitbucket.org/nitrous/mtgox-api/overview上的指示,但无济于事。据我所知,协议是:
- 取你的请求的路径(应该看起来像
BTCUSE/money/info
什么),然后是 null 字符\0
,然后是你的 post 参数,并将它们组合成一个字符串。 - 从 base 64 解码密钥
- 使用hmac sha512,上面的字符串作为消息,秘钥作为秘钥,运行hmac算法得到签名。
- 将整个事情编码回base64
所以在这个阶段,我有
所以我只是想进行一个信息调用,除了随机数之外不需要任何参数。因此,正如文档所述,我将请求属性“rest-key”设置为我的 apikey,并将“rest-sign”设置为我的签名,然后完成帖子。但我收到了 403 响应。我在这个网站上遇到的几个问题,我在论坛上看到过,但从未得到回答是
- 在 post 参数上使用 urlencode 有什么问题?我需要这样做吗?在我见过的所有例子中,他都这样做了,但我从未见过任何说你必须这样做的东西,而且
- 我的空字符正确吗?因为我已经按照说明进行了操作,但是在我刚刚给出的页面上的示例中,他的消息字符串中仍然包含
\0
,我会让我相信他实际上是\
通过放入\\0
字符串而不是\0
. 有任何想法吗?如果您认为将我的代码发布在堆栈溢出上会更好,请告诉我。
这是我提出请求的代码:
我getInputStream()
当然遇到了错误。
python - 在 Python 3 中对 MtGox WebSocket API 的认证调用
我正在尝试使用 MtGox.com WebSocket API 进行身份验证,并在很长一段时间后设法完成了 JSON 数据所需的“调用”属性。然而,我意识到我正在使用 Python 2 来运行我的代码示例,并且最终要在其中实现 API 的应用程序是用 Python 3 编写的。当我试图让它在 Python 3 中工作时,我遇到了几个问题尽管经过了几次长时间的尝试,仍无法解决。
我也尝试过2to3
,但似乎没有针对此类问题的内置修复程序。
可在此处找到经过身份验证的 API 调用的 API 规范: https ://en.bitcoin.it/wiki/MtGox/API/Streaming#Authenticated_commands
这是我用来生成 JSON 调用的工作 Python 2 脚本,然后我通过我为 Chrome 找到的 WebSocket 控制台扩展运行该脚本。
我遇到的一些错误与不再存在的 String.decode("hex") 有关,我还有其他一些错误,但不幸的是我没有跟踪所有这些错误,因为我尝试了很多不同的方法. 我还查看了其他语言中相同功能的代码示例,但找不到与 Python 3 问题相关的任何线索。Python 3 中对字节和字符串编码和解码所做的更改似乎与很多事情有关。
提前非常感谢!
api - MtGox socket.io 流式传输
MtGox Streaming API 已关闭或代码有问题?
我用这个例子 https://bitbucket.org/nitrous/mtgox-api/src/004c254993963baeb239ac7ac7f676b5024fc93f/socket/ws.client.html?at=master
你可以在这里测试http://atc.leadsoft.eu/test.html
我输入了服务器 url ( https://socketio.mtgox.com/mtgox ) 并单击连接,但大多数时候它只写入已连接或连接超时并冻结。