Author

Topic: API connection für Anfänger (Read 1125 times)

hero member
Activity: 854
Merit: 503
October 11, 2016, 12:38:02 PM
#11
Ich rufe die get_balance in der Main auf:

include "yobit_api.php";
print_r(get_balance())
?>


und im browser steht

Array ( [success] => 0 [error] => invalid method )

Die Methode müsste aber doch richtig sein oder nicht?
legendary
Activity: 2270
Merit: 1363
October 11, 2016, 07:06:19 AM
#10
So getestet und für gut befunden, jedoch nächstes Problem.
Ich bekomme vom Server nen Error Response wieder.

Jemand ne Idee Wink

Was sagt die Response ?
hero member
Activity: 854
Merit: 503
October 11, 2016, 05:35:43 AM
#9
So getestet und für gut befunden, jedoch nächstes Problem.
Ich bekomme vom Server nen Error Response wieder.

Jemand ne Idee Wink
hero member
Activity: 854
Merit: 503
October 10, 2016, 04:02:09 PM
#8
Vielen Vielen Dank.

Ich kann jetzt endlich weiter arbeiten. ich danke dir so vielmals Smiley Besonders das du dir die Mühe gegeben hast sie zu verbessern.
legendary
Activity: 2270
Merit: 1363
October 10, 2016, 03:52:15 PM
#7
Hab mal damit ein wenig rumgespielt und folgende Dinge gefunden :

Deine Variablen sind nicht richtig benannt und unvollständig : Im Header müssen sie Sign und Key heißen und beide vorhanden sein.
Deine Postparameter enthalten nicht getInfo als Method, sondern nur Info.
Die Postparameter müssen folgende sein : nonce und method.
Du hashst als Sign die komplette Url, du musst nur die Postparameter Hashen.
Das Sleep solltest du nicht brauchen, da der Request synchron ist und das Skript erst weiterläuft wenn eine Antwort da ist oder es einen Timeout gibt.

Hab mir mal die Freiheit genommen und hier eine funktionierende verbesserte Version :

function make_private_api_call($query)
{
    $apikey = "";
    $apisecret = "";
    $base_url = "https://yobit.net/tapi/";

    $req['method'] = $query;
    $req['nonce'] = time();
    $post_data = http_build_query($req, '', '&');

    $sign = hash_hmac("sha512", $post_data, $apisecret);
    $headers = array(
        'Sign: '.$sign,
        'Key: '.$apikey,
    );


    $ch = curl_init($base_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_ENCODING , 'gzip');


$execResult = curl_exec($ch);
$result = json_decode($execResult, true);

return $result;

}

function get_balance()
{
    $command = "getInfo";
    $params = "";
    $query = "$command";
    $result = make_private_api_call($query);


    return $result;
}
hero member
Activity: 854
Merit: 503
October 10, 2016, 02:48:02 PM
#6
Hi Danke Smiley
Also das ist meine Public:

function make_public_api_call($query)
{
$base_url = "https://yobit.net/api/3/";
$uri = $base_url . $query;
$ch = curl_init($uri);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$execResult = curl_exec($ch);
$result = json_decode($execResult, true);

return $result;
}


Die funktioniert.


Das meine Private:
function make_private_api_call($query)
{
$apikey = "";
$apisecret = "";
$nonce = time();
$base_url = "https://yobit.net/tapi/";
echo $base_url;
$uri = $base_url . $query . "&apikey=" . $apikey . "&nonce=" . $nonce;
$sign = hash_hmac("sha512", $uri, $apisecret);
$ch = curl_init($uri);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("apisign:" $sign));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$execResult = curl_exec($ch);
$result = json_decode($execResult, true);
sleep(1);

return $result;

}

Die macht Probleme

und das die get_balance.

function get_balance()
{
$command = "info";
$params = "";
$query = "$command/$params";
$result = make_private_api_call($query);


return $result;
}

Vielen lieben Dank. Ich komme einfach nicht weiter.
legendary
Activity: 2270
Merit: 1363
October 10, 2016, 02:31:25 PM
#5
Wie rufst du denn die Public Api im Moment auf?

Kleines Codebeispiel wäre hilfreich um zu verstehen was du schon geschafft hast, und wo du noch hängst, auch wenn ich schon eine Idee habe.
hero member
Activity: 854
Merit: 503
October 10, 2016, 02:18:36 PM
#4
Keiner ne Ahnung? Gebe auch gern nen Trinkgeld für nen Hinweis
hero member
Activity: 854
Merit: 503
October 10, 2016, 04:37:28 AM
#3
Naja ich habe von nichts eine Ahnung.
Habe mal ein wenig C++ programiert und halt jetzt mit PHP mal auf eigene Faust angefangen.
Einfache Befehle funktionieren, sogar auch der Aufruf der Public API.
Habe aber das Problem das ich nicht genau weiß wie man die Private implementiert und die funktionen dann damit aufruft.
Konkret würde mir am meisten helfen wenn es irgendwo ne Seite gibt die genau das bei YOBIT zeigt(Yobit Seite hilft mir nicht wirklich weiter, brauche den konkreten Code). So kann ich mich dann lang hangeln und bei anderen Börsen auch mal probieren.
full member
Activity: 232
Merit: 101
Stratege, berechnend
October 10, 2016, 04:31:14 AM
#2
Wo genau liegt denn das Problem?
-Du solltest Ahnung in PHP von JSON und Requests an sich haben, mehr ist es nicht...
hero member
Activity: 854
Merit: 503
October 10, 2016, 03:38:32 AM
#1
Hallo,
ich bin Anfänger im Bereich PHP.
Wollte aus Spass mal ein wenig in die Materie API einarbeiten.

Habe mir als erstes die Platform Yobit vorgenommen und habe dort mit ein wenig Youtube Hilfe den Public API ausgeben können und die einzelnen Daten von den Coins auslesen können.
Leider schaffe ich es nicht die Private zu integrieren um meine eigene Balance auslesen zu können..
Gibt es für so etwas TUTs für Einsteiger? Habe jetzt auf Youtube einfahc nichts passendes gefunden (Ja zu PHP gibt es ne Menge), würde aber gern mehr Beispiele über die Exchange Seiten haben wollen.
Vielen Dank für die Antworten im Voraus. Smiley
Jump to: