Bonjour,
J'essaie de mettre en place l'API - Magickartenmarkt RESTful API
J'aimerais déjà m'authentifier afin d'effectuer d'autres tests par la suite.
Voici le lien de la documention sur l'API : https://www.mkmapi.eu/ws/documentation/API_2.0:Main_Page
Mon code est le suivant :
Le var_dump retourne le message suivant :
Resource not found. error-router-no-match
Le code de base pour s'authentifier se trouve ici : https://www.mkmapi.eu/ws/documentation/API:Auth_libcurl
J'ai essayé de faire un test simple de GET sur google et cela fonctionne bien donc je ne pense pas que ce soit un problème au niveau de cURL.
Du coup, j'incrimine un peu l'API et ne suis pas sûr qu'elle fonctionne. J'aurais besoin d'aide afin de savoir si c'est l'API qui ne fonctionne pas ou si cela provient de mon code svp
J'essaie de mettre en place l'API - Magickartenmarkt RESTful API
J'aimerais déjà m'authentifier afin d'effectuer d'autres tests par la suite.
Voici le lien de la documention sur l'API : https://www.mkmapi.eu/ws/documentation/API_2.0:Main_Page
Mon code est le suivant :
<?php
$method = "GET";
$url = "https://www.mkmapi.eu/ws/v2.0/account";
$appToken = "My App token"; //double checked in my account
$appSecret = "My App secret"; //double checked in my account
$accessToken = "My Access token"; //double checked in my account
$accessSecret = "My Access token secret"; //double checked in my account
$nonce = uniqid();
$timestamp = time();
$signatureMethod = "HMAC-SHA1";
$version = "2.0";
/**
* Gather all parameters that need to be included in the Authorization header and are know yet
*
* @var $params array|string[] Associative array of all needed authorization header parameters
*/
$params = array(
'realm' => $url,
'oauth_consumer_key' => $appToken,
'oauth_token' => $accessToken,
'oauth_nonce' => $nonce,
'oauth_timestamp' => $timestamp,
'oauth_signature_method' => $signatureMethod,
'oauth_version' => $version,
);
/**
* Start composing the base string from the method and request URI
*
* @var $baseString string Finally the encoded base string for that request, that needs to be signed
*/
$baseString = strtoupper($method) . "&";
$baseString .= rawurlencode($url) . "&";
/*
* Gather, encode, and sort the base string parameters
*/
$encodedParams = array();
foreach ($params as $key => $value)
{
if ("realm" != $key)
{
$encodedParams[rawurlencode($key)] = rawurlencode($value);
}
}
ksort($encodedParams);
/*
* Expand the base string by the encoded parameter=value pairs
*/
$values = array();
foreach ($encodedParams as $key => $value)
{
$values[] = $key . "=" . $value;
}
$paramsString = rawurlencode(implode("&", $values));
$baseString .= $paramsString;
/*
* Create the signingKey
*/
$signatureKey = rawurlencode($appSecret) . "&" . rawurlencode($accessSecret);
/**
* Create the OAuth signature
* Attention: Make sure to provide the binary data to the Base64 encoder
*
* @var $oAuthSignature string OAuth signature value
*/
$rawSignature = hash_hmac("sha1", $baseString, $signatureKey, true);
$oAuthSignature = base64_encode($rawSignature);
/*
* Include the OAuth signature parameter in the header parameters array
*/
$params['oauth_signature'] = $oAuthSignature;
/*
* Construct the header string
*/
$header = "Authorization: OAuth ";
$headerParams = array();
foreach ($params as $key => $value)
{
$headerParams[] = $key . "=\"" . $value . "\"";
}
$header .= implode(", ", $headerParams);
/*Initialisation de la ressource curl*/
$curlHandle = curl_init();
/*
* Set the required cURL options to successfully fire a request to MKM's API
*
* For more information about cURL options refer to PHP's cURL manual:
* http://php.net/manual/en/function.curl-setopt.php
*/
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_HTTPHEADER, array($header));
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, false);
/**
* Execute the request, retrieve information about the request and response, and close the connection
*
* @var $content string Response to the request
* @var $info array Array with information about the last request on the $curlHandle
*/
$content = curl_exec($curlHandle);
$info = curl_getinfo($curlHandle);
curl_close($curlHandle);
/*
* Convert the response string into an object
*
* If you have chosen XML as response format (which is standard) use simplexml_load_string
* If you have chosen JSON as response format use json_decode
*
* @var $decoded \SimpleXMLElement|\stdClass Converted Object (XML|JSON)
*/
// $decoded = json_decode($content);
$decoded = simplexml_load_string($content);
var_dump($content);
?>
Le var_dump retourne le message suivant :
Resource not found. error-router-no-match
Le code de base pour s'authentifier se trouve ici : https://www.mkmapi.eu/ws/documentation/API:Auth_libcurl
J'ai essayé de faire un test simple de GET sur google et cela fonctionne bien donc je ne pense pas que ce soit un problème au niveau de cURL.
Du coup, j'incrimine un peu l'API et ne suis pas sûr qu'elle fonctionne. J'aurais besoin d'aide afin de savoir si c'est l'API qui ne fonctionne pas ou si cela provient de mon code svp