oxi (OP)
|
|
August 04, 2011, 09:27:50 AM |
|
Hallo, ich benötige einmal Hilfe mit der MtGox api. Ich möchte z.B. mit einem Programm folgende URL auslesen: https://mtgox.com/api/0/getFunds.phpDort sollte die Anzahl meiner BTCs angezeigt werden laut beschreibung. Ich habe auch schon ein API-Key erstellt. Doch wie setze ich diesen API-Key ein? Ich muss dies über wget realisieren. Jemand eine Idee? Danke oxi
|
|
|
|
Sukrim
Legendary
Offline
Activity: 2618
Merit: 1007
|
|
August 04, 2011, 09:33:23 AM |
|
Steht doch eh auf https://mtgox.com/support/tradeAPI: The following require you to be identified via an API key. Once you have the API key you need to add a "nonce" parameter to the post data (which must be an ever-increasing interger, for example with PHP in 64bits: (int)(microtime(true)*1000000)) and two HTTP headers: Rest-Key (your key) nad Rest-Sign (a signature generated by doing a sha512-hmac on the POST data with the secret as key, encoded in base64). Du brauchst also einen "nonce" Parameter in deinem POST und 2 zusätzliche HTTP header, einmal den Key und einmal einen Hash aus POSTdaten + Key. edit: Noch mehr Doku gibt's auf https://en.bitcoin.it/wiki/MtGox/API
|
|
|
|
oxi (OP)
|
|
August 04, 2011, 09:36:42 AM |
|
magst du mir eventuell ein beispiel geben? Das würde mir total weiterhelfen...stehe gerade irgendwie auf dem Schlauch
|
|
|
|
Sukrim
Legendary
Offline
Activity: 2618
Merit: 1007
|
|
August 04, 2011, 09:37:44 AM |
|
Am Wiki steht eine Referenzimplementation in PHP - welche Sprache brauchst du?
|
|
|
|
oxi (OP)
|
|
August 04, 2011, 09:45:04 AM |
|
ich brauche das ganze per wget aus der Programmersprache Gambas heraus.
|
|
|
|
oxi (OP)
|
|
August 04, 2011, 12:31:30 PM |
|
mir würde schon ein beispiel für wget im prozessraum reichen. Ich hoffe mir kann einer helfen
|
|
|
|
somni451
Member
Offline
Activity: 64
Merit: 10
|
|
August 04, 2011, 01:06:14 PM |
|
mir würde schon ein beispiel für wget im prozessraum reichen. Ich hoffe mir kann einer helfen Der wget-Aufruf würde wie folgt funktionieren. wget --no-check-certificate -O - -q --header='Rest-Key: <API-KEY>' --header='Rest-Sign: <REST-SIGN>' --post-data='nonce=<NONCE>' https://mtgox.com/api/0/getFunds.php
<NONCE> und <REST-SIGN> musst du halt bei dir im Skript erstellen/ermitteln.
|
|
|
|
oxi (OP)
|
|
August 04, 2011, 01:13:26 PM |
|
also warscheinlich eine dumme frage, da es jedoch immernochnicht klappt bitte ich nochmals um hilfe.
wie erstelle ich denn solch ein script per console?
|
|
|
|
somni451
Member
Offline
Activity: 64
Merit: 10
|
|
August 04, 2011, 01:23:51 PM |
|
Du meinst das Skript zum ermitteln von Nounce und Signatur? Die solltest du in deinem Gambas-Code ermitteln. Also einfach die ersten paar Zeilen des PHP-Sample-Skript in Gambas umschreiben. Oder was meinst du?
|
|
|
|
oxi (OP)
|
|
August 04, 2011, 01:28:33 PM |
|
genau das mit dem encoden habe ich ja verstanden das ich den secret key encoden muss. doch mit dem nonce verstehe ich irgendwie garnicht. ist das ein parameter der von 1 an immer höher gezählt werden muss?
|
|
|
|
somni451
Member
Offline
Activity: 64
Merit: 10
|
|
August 04, 2011, 01:31:37 PM |
|
ist das ein parameter der von 1 an immer höher gezählt werden muss?
z.B. Muss halt eine Zahl sein, die sich mit jedem Request erhöht. Deshalb bietet es sich an einfach einen aktuellen Timestamp zu nehmen, da du dir dann ja keinen Kopf um den letzten Nonce machen musst.
|
|
|
|
oxi (OP)
|
|
August 04, 2011, 01:32:58 PM |
|
ok.
nun noch die letzte frage:
gibt es ein linux consolen tool, mit dem ich den secret code decodieren kann?
|
|
|
|
somni451
Member
Offline
Activity: 64
Merit: 10
|
|
August 04, 2011, 01:45:16 PM |
|
Verstehe zwar nicht wozu du den decoden willst, aber base64 ist das was du suchst. echo <SECRET> | base64 -d
|
|
|
|
oxi (OP)
|
|
August 04, 2011, 01:45:56 PM |
|
ich dachte das muss man oder muss man den encoden?
oder was muss ich mit dem secred code machen?
|
|
|
|
somni451
Member
Offline
Activity: 64
Merit: 10
|
|
August 04, 2011, 01:47:48 PM |
|
ich dachte das muss man oder muss man den encoden?
Stimmt, hast recht
|
|
|
|
oxi (OP)
|
|
August 04, 2011, 01:49:01 PM |
|
ist es richtig das da so cryptische zahlen in der console bei rauskommen?
|
|
|
|
somni451
Member
Offline
Activity: 64
Merit: 10
|
|
August 04, 2011, 01:50:33 PM |
|
Yep. Deswegen ist das Ding ja base64-encoded, damit der Key einfacher weiterzugeben ist.
|
|
|
|
oxi (OP)
|
|
August 04, 2011, 01:53:01 PM |
|
mh da steht immernoch error: must be login. danke schonmal für deine hilfe! momentan sieht das in gambas so aus: STRtest ist ein String Shell ("echo <SecretCode> | base64 -d") To STRtest Shell ("wget --no-check-certificate -O - -q --header='Rest-Key: <key>' --header='Rest-Sign:" & STRtest & "' --post-data='nonce=<zahl>' https://mtgox.com/api/0/getFunds.php") To STRapi passt doch so oder?
|
|
|
|
somni451
Member
Offline
Activity: 64
Merit: 10
|
|
August 04, 2011, 02:03:04 PM |
|
Nop. STRtest hält ja nur den Secret-Key, muss aber eine Signatur der POST-Params halten (also von nounce). Siehe: base64_encode(hash_hmac('sha512', $post_data, base64_decode($secret), true))
|
|
|
|
oxi (OP)
|
|
August 05, 2011, 11:19:50 AM |
|
nun habe ichs endlich habe letzt endlich das beispiel php script abgespeichert und lese den output einfach mit gambas ein. ist die schnellste und einfachste methode. Danke für eure Hilfe.
|
|
|
|
|