bonjour,
j'ai un soucis avec une API REST json.
je ne parvient pas a poster du contenu via une fonction qui encode les informations directement dans l'URL de cette facon.
https://www.dacast.com/backend/api/live/0?bid=26708&apikey=monAPIKey&title=blablabla&online=0&stream_type=1&stream_category=20&publish_on_dacast=1
je peux pas vous fournir mon API key pour des raisons evidente de securite (negociable en MP pour une duree limitee mais elle serra changee une fois les tests passee ), sachez cependant qu'il ne manque pas grand chose pour que ca fonctionne, j'avai reussi a le debloquer une premiere fois, le probleme c'est que dans l'euforie j'ai recasser mon code le lendemain et j'avais aucune backup bien evidement ><
j'ai comparer ma trame avec celle generer par un testeur d'API interne (swagger) qui utilise les meme fonctions (je ne peux pas vous le linker il faut etre logger pour pouvoir l'utiliser ....)
Bon je sais que c'est un peu compliquee de debugger sans la clef, mais ne serai ce que me donner une piste pour debuger mon probleme ca serai deja bien !
pour info mon script me retourne ceci
https://www.dacast.com/backend/api/live/?bid=26708&apikey=mon API key&title=plop&description=plap&online=1&stream_type=1&stream_category=20&publish_on_dacast=1Array (
=> https://www.dacast.com/backend/api/live/?bid=26708&apikey=mon API key&title=plop&description=plap&online=1&stream_type=1&stream_category=20&publish_on_dacast=1 [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0
=> -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.187 [namelookup_time] => 0.093 [connect_time] => 0.187 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0
=> Array ( ) ) NULL
si ca peux vous aider !
merci !
Levure
j'ai un soucis avec une API REST json.
je ne parvient pas a poster du contenu via une fonction qui encode les informations directement dans l'URL de cette facon.
https://www.dacast.com/backend/api/live/0?bid=26708&apikey=monAPIKey&title=blablabla&online=0&stream_type=1&stream_category=20&publish_on_dacast=1
je peux pas vous fournir mon API key pour des raisons evidente de securite (negociable en MP pour une duree limitee mais elle serra changee une fois les tests passee ), sachez cependant qu'il ne manque pas grand chose pour que ca fonctionne, j'avai reussi a le debloquer une premiere fois, le probleme c'est que dans l'euforie j'ai recasser mon code le lendemain et j'avais aucune backup bien evidement ><
j'ai comparer ma trame avec celle generer par un testeur d'API interne (swagger) qui utilise les meme fonctions (je ne peux pas vous le linker il faut etre logger pour pouvoir l'utiliser ....)
Bon je sais que c'est un peu compliquee de debugger sans la clef, mais ne serai ce que me donner une piste pour debuger mon probleme ca serai deja bien !
pour info mon script me retourne ceci
https://www.dacast.com/backend/api/live/?bid=26708&apikey=mon API key&title=plop&description=plap&online=1&stream_type=1&stream_category=20&publish_on_dacast=1Array (



si ca peux vous aider !
merci !
Levure
<?php
define("APIKEY", "monAPIkey");
define("URL", "https://www.dacast.com/backend/api/live");
define("BID", "26708");
main();
function main() {
$live_id = '0';
$title = urlencode("plop");
$description = urlencode("plap");
$online = urlencode('1');
$stream_type = urlencode('1');
$stream_category = urlencode('20');
$publish_on_dacast = urlencode('1');
/*
$data = curlWrap("/" . $live_id . "?bid=" . BID . "&apikey=" . APIKEY
. "&title=" . $title . "&description=" . $description . "&online=" . $online
. "&stream_type=" . $stream_type . "&stream_category=" . $stream_category
. "&publish_on_dacast=" . $publish_on_dacast, NULL, "POST");
*/
curlWrap("/0?bid=26708&apikey=7c70028b237d85cda0cc&title=" . $title . "&description=" . $description . "&online=" . $online . "&stream_type=" . $stream_type . "&stream_category=" . $stream_category . "&publish_on_dacast=" . $publish_on_dacast, NULL, "POST");
if ($data->error->message != null) {
echo "<p>Error : " . $data->error->message . "</p>";
} else {
echo '<br>' . var_dump($data) . '<br>';
}
}
function curlWrap($url, $json, $action) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_URL, URL . $url);
curl_setopt($ch, CURLOPT_CAINFO, "cacert.pem");
curl_setopt($ch, CURLOPT_VERBOSE, 1);
echo URL . $url;
switch ($action) {
case "POST":
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
break;
case "GET":
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
break;
case "PUT":
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
break;
case "DELETE":
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
break;
default:
break;
}
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
print_r(curl_getinfo($ch));
curl_close($ch);
$decoded = json_decode($output);
return $decoded;
}
?>