Author

Topic: Cryptsy API usage PROBLEM (help needed) (Read 1480 times)

legendary
Activity: 1007
Merit: 1000
July 08, 2014, 08:32:06 AM
#6

    Did you ever get this working? 

   I think your problem is in the array your passing in.  If you put a var_dump for the post_data just after you build it, I think you'll see it's not what your expecting. 

I believe (without checking at all), that the array your passing in will have a key(index) of marketid and a value of 3.  not the index 0 and value "marketid => 3" your expecting.  I don't remember if you need marketid in quotes on the call or not, if yes, then maybe wrap the whole thing in single quotes, and if no, then move the double quote end, from right after marketid to after the 3. 

          Good luck  Bob   
newbie
Activity: 2
Merit: 0
March 10, 2014, 08:28:45 PM
#5
Hi, I came across the same issue.
On the cryptsy settings page, make sure you click on the "API Enabled/Disabled" switch.
It's disabled by default and not easily noticed.
sr. member
Activity: 420
Merit: 250
March 05, 2014, 05:57:23 AM
#4
up
sr. member
Activity: 420
Merit: 250
March 04, 2014, 08:55:54 AM
#3
up
sr. member
Activity: 420
Merit: 250
March 04, 2014, 04:22:53 AM
#2
up
sr. member
Activity: 420
Merit: 250
March 04, 2014, 02:00:53 AM
#1
Hi,

I have used the php code in crypsy-api site.
When i try to get "marketorders" or any other operation that requests authentication.

i have generated public/private key using my user at crypsy
and added them to the code.

What am i doing wrong?

the reault is:
Array
(
    [success] => 0
    [error] => Unable to Authorize Request - Check Your Post Data
)


the function i use:

function api_query($method, array $req = array()) {
    // API settings
    $key = '[Trust me i have filled it]'; // your API-key
    $secret = '[Trust me i have filled it]'; // your Secret-key

    $req['method'] = $method;
    $mt = explode(' ', microtime());
    $req['nonce'] = $mt[1];
    
    // generate the POST data string
    $post_data = http_build_query($req, '', '&');

    $sign = hash_hmac("sha512", $post_data, $secret);

    // generate the extra headers
    $headers = array(
            'Sign: '.$sign,
            'Key: '.$key,
    );

    // our curl handle (initialize if required)
    static $ch = null;
    if (is_null($ch)) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; Cryptsy API PHP client; '.php_uname('s').'; PHP/'.phpversion().')');
    }
    print('Mozilla/4.0 (compatible; Cryptsy API PHP client; '.php_uname('s').'; PHP/'.phpversion().')');
    curl_setopt($ch, CURLOPT_URL, 'https://api.cryptsy.com/api');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

    // run the query
    $res = curl_exec($ch);

    if ($res === false) throw new Exception('Could not get reply: '.curl_error($ch));
    $dec = json_decode($res, true);
    if (!$dec) throw new Exception('Invalid data received, please make sure connection is working and requested API exists');
    return $dec;
}

the api call:

$result = api_query("marketorders", array("marketid" => 3));




Thanks:)
Jump to: