In diesem Tutorial sehen wir uns an, wie man die API-Authentifizierung in Python ohne ccxt verwenden kann. ccxt ist einfach und für Anfänger leicht zu bedienen, aber es ist schwer zu verstehen, was es hinter den Kulissen tut. Bitcoin Bargain wird den Prozess der Überprüfung Ihres Guthabens, der nur mit einem API-Schlüssel genutzt werden kann, vorstellen und erklären.

Grasscat Managers Table of Contents Notizen1 Der Code, um den Kontostand von bitFlyer zu erhalten2 Die Bibliothek, die wir verwenden3 Vorbereitung der notwendigen Variablen4 Vorbereitung der Header-Informationen5 Auslösen einer Anfrage (eine Anweisung, um Daten zu erhalten) an den API-Server6 Kenntnis des Unterschieds zwischen GET und POST7 Verwendung der POST-Methode, um ein Limit zu setzenEine Bestellung aufgeben8 Wie man die API-Authentifizierung mit bitFlyer in Python ohne ccxt durchführt Zusammenfassung des Codes, um den Saldo von bitFlyer zu erhalten Der obige Code ist das, was wir besprechen werden.

Wenn Sie den obigen Code ausführen, erhalten Sie als Ergebnis den Saldo Ihrer physischen Bestände auf bitFlyer.[crayon-611257c84300a855318659//] Ich werde den Code der Reihe nach erklären. Die von uns verwendete Bibliothek [crayon-611257c843010081802413//] Der Prozess, den wir durchführen wollen, besteht darin, eine Anweisung an die API (den bitFlyer-Server) zu senden, um die gewünschten Daten, in diesem Fall die Kontostandsdaten, zurückzusenden.

Die Daten liegen im JSON-Format vor, und da die Kontodaten für den Einzelnen privat sind, können Sie die Daten abrufen, wenn Sie sich mit Ihrem API-Schlüssel identifizieren können. Diese Bibliothek ist für diesen Zweck notwendig. Bibliotheksbeschreibungen - import requests ist eine Bibliothek für die Verwendung der GET- und POST-Methoden (später erklärt). import datetime ist eine Bibliothek zur Ermittlung eines Datums. import json ist eine Bibliothek für den Umgang mit JSON-Strings (ein häufig verwendeter Standard für die Anordnung von Daten).

from pprint import pprint ist eine Bibliothek, mit der man die Datenausgabe auf dem Terminal (Befehl pronto) auf angenehme Weise öffnen kann. (from ist ein Code zur Angabe eines Objekts, das weiter in der pprint-Bibliothek enthalten ist.

[crayon-611257c843016826543172//] Diese beiden Bibliotheken werden verwendet, um den API-Schlüssel (API-Geheimschlüssel) zu verschlüsseln, damit er nicht abgefangen werden kann. Abhören bedeutet hier, zu verfolgen, an welchen Server (Website) jemand eine Anweisung sendet (z. B. zum Verschieben einer Seite). Wenn Sie eine Bibliothek wie ccxt verwenden, wird sie dies für Sie tun, aber es ist aus Sicherheitsgründen sehr wichtig.

Übrigens, Wie man API-Authentifizierung mit bitFlyer in Python ohne ccxt durchführt [Understanding Authentication] Bibliothek ist ein wiederverwendbares Modul (eine Sammlung von Prozessen).In beiden Fällen handelt es sich um dieselbe Sache, aber eine Bibliothek ist eine Klassifizierung von Modulen.

Es ist verwirrend, weil verschiedene Leute es unterschiedlich nennen. Bereiten Sie die erforderlichen Variablen vor [crayon-611257c84301b637689891//] Natürlich ist ein API-Schlüssel erforderlich.Und da es sich bei den APIs der meisten Börsen um REST-APIs handelt (APIs, die Daten in URLs enthalten), müssen Sie auch die URL angeben. Das Wort GET bedeutet fast dasselbe wie im Japanischen.Es ist ein Befehl, der an den API-Server gesendet wird, um Daten abzurufen. Sie müssen auch einen Zeitstempel (Uhrzeit) angeben, da Sie dem Server mitteilen müssen, wann und zu welcher Uhrzeit Sie sich authentifiziert haben.

Außerdem benötigen wir eine Nachrichtenvariable mit der Uhrzeit und der URL, unter der die Daten gespeichert werden sollen. Da die Nachrichtenvariable allein uns nicht verrät, wer den Befehl gegeben hat, müssen wir die Nachricht mit dem API-Schlüssel verschlüsseln, damit sie nicht abgefangen werden kann.

Zu diesem Zweck sollten Sie auch eine Signatur-Variable vorbereiten. API-Schlüssel, hier sollten Sie auch Ihren API-Schlüssel (geheimer Schlüssel) eingeben.[crayon-611257c843021685342982//] Geben Sie dann die URL an (da die Daten in der URL enthalten sind).[crayon-611257c843026551157043//] Auf der offiziellen Seite der KusaNeko Manager bitFlyer API steht //v1//me//◯◯, aber wenn Sie diesen ◯◯-Teil frei ändern, ändern sich auch die Daten, die Sie erhalten.Das heißt, wenn Sie den ◯-Teil ändern, ändern sich auch die Daten, die Sie erhalten.

Der Inhalt der Signaturvariable kann für Anfänger besonders schwierig sein.Wir haben [crayon-611257c84302a118181337//]hmac als Bibliothek importiert.Der hmac wurde als Bibliothek importiert Wie man API-Authentifizierung mit bitFlyer in Python ohne ccxt durchführt [Understanding Authentication] als Variable in der Form hmac.new() verwendet.(Verwendung als Instanz) hmac (Hash-Based Message Authentication Code) ist eine Abkürzung für einen Code, der Nachrichten mit einem kryptografischen Verfahren namens Hash-Funktion verschlüsselt.

Mit hmac können Sie Ihren API-Schlüssel und die Nachricht (in diesem Fall die URL und den Zeitstempel für den Empfang der gewünschten Daten) verschlüsseln und gleichzeitig sicherstellen, dass niemand beim Senden der Nachricht mithören kann. Dies ist einer der Standards in modernen WebAPIs. Um es auszuprobieren, geben Sie die Daten in der Signatur aus.[crayon-611257c843032039294886//], erhalten Sie den folgenden Hash-Wert (nach Durchlaufen der Hash-Funktion) als Ergebnis.In [crayon-611257c843036663319775//]hmac wird die Verschlüsselung mit einer Hash-Funktion namens SHA256 (der hashlib.sha256-Teil) durchgeführt.Wenn Sie sich mit Blockchain befasst haben, haben Sie wahrscheinlich schon von dieser Hash-Funktion gehört.

Die Besonderheit der Hash-Funktion besteht darin, dass ein völlig anderer Hash-Wert erzeugt wird, wenn sich die Daten darin auch nur um ein Zeichen unterscheiden. Die Funktion bytearray() in der Mitte der Funktion wandelt die Daten in computerlesbare Zeichen (Binärdaten) um. Der letzte Teil, hexdigest(), verkettet die Daten. Vorbereiten der Header-Informationen [crayon-611257c84303b287972528//] Header-Informationen sind die Informationen, die der Server lesen wird.Es handelt sich dabei nicht um Informationen für Menschen, sondern um Informationen, die der Server benötigt, um den Browser korrekt anzuzeigen.

Wir setzen die Variablen, die wir gerade für Sie vorbereitet haben. [crayon-611257c843040909134084//]Die Header-Informationen sind nicht für alle Operationen des Webservers erforderlich, und bis zu einem gewissen Grad wird der Server sie automatisch verarbeiten, aber es gibt keine Garantie, dass sie im Browser korrekt angezeigt werden.

Für Vorgänge, die die API verwenden, sind jedoch Kopfdaten erforderlich. Content-Type = application//json, was eine JSON-Zeichenfolge ist. Stellen Sie eine Anfrage (eine Anweisung zum Abrufen von Daten) an den API-Server [crayon-611257c843045374730507//] Zum Schluss senden wir die Variablen und Header-Informationen, die wir vorbereitet haben, an den API-Server. Verwenden Sie requests.get(base + path, headers = headers) und weisen Sie das Ergebnis der Variablen res zu.

Dann verwenden wir pprint(), um das Ergebnis mit einem schönen Zeilenumbruch auszugeben. Es heißt res.json(), was bedeutet, dass die Variable res im JSON-Format ausgegeben wird. Kennen Sie den Unterschied zwischen GET und POST.

In diesem Fall habe ich GET verwendet, um die Daten zu erhalten, damit es einfacher zu erklären ist.[crayon-611257c84304c993601705//] Es ist jedoch die POST-Methode, die bei der Durchführung des automatischen Handels am häufigsten verwendet wird. Bevor ich POST erkläre, möchte ich Ihnen erklären, was GET und POST sind. Sie sind eine Art von HTTP (HTTP-Methode), die ein Standard für die Kommunikation mit Servern ist.

POST und GET unterscheiden sich in der Art und Weise, wie sie den Server aufrufen: GET -> Daten anfordern - POST -> Daten senden - das ist der einzige Unterschied. GET ist einfach, Sie fordern nur Daten vom API-Server an, aber POST sendet Daten, die Sie natürlich selbst vorbereiten müssen. Im nächsten Abschnitt werden wir die Daten in die params-Variable eingeben und sehen, wie wir sie tatsächlich POSTen können.

Ich versuche, eine Limit-Order mit der POST-Methode zu platzieren [crayon-611257c843051577414991//] Ich habe die Änderungen und Ergänzungen hervorgehoben.

Wir haben die URL der Pfadvariable geändert, um die Bestellung aufzugeben, und die param-Variable als Daten zum Senden an den API-Server vorbereitet. Die json.dumps konvertiert (kodiert) die param-Variablen in ein JSON-Format, das der Server lesen kann.In der Variablen [crayon-611257c843056794970973//]res wurde data = body hinzugefügt, was bedeutet, dass die Daten, die wir an POST senden wollen, in der Variablen data gespeichert werden. Führen Sie [crayon-611257c84305c001897755//]aus, und Sie werden sehen, dass der Limitauftrag erstellt wurde.

Wie man API-Authentifizierung mit bitFlyer in Python ohne ccxt durchführt [Understanding Authentication]

Zunächst sollten Sie Ihre Bestellung auf der bitFlyer Lightning-Seite sehen können.Der Vorgang sollte in wenigen Sekunden abgeschlossen sein.

Wie man API-Authentifizierung mit bitFlyer in Python ohne ccxt durchführt Zusammenfassung API-Authentifizierung ist oft kompliziert.Wenn Sie jedoch Webservice-APIs verwenden, werden Sie wahrscheinlich häufig mit ihnen konfrontiert, und wenn Sie sie verstehen, können Sie sie in Zukunft anwenden. Um zu lernen, wie man cxt verwendet, um Aufträge in Python zu platzieren, lesen Sie unseren Artikel über die Verwendung von Python, um Aufträge in virtueller Währung (Bitcoin) zu platzieren.

Auf diese Weise können Sie lernen, wie man mit Python virtuelle Währungen (Bitcoin) kauft und verkauft.Wenn Sie Fragen haben, können Sie sich gerne an uns wenden.


24 23 15