[RESOLU] Sendinblue : lister l'activité de mes emails transactionnels avec Curl et PHP

Petit nouveau ! | 4 Messages

24 mars 2022, 11:16

Bonjour,

Je souhaiterai lister l'activité de mes emails transactionnels avec l'api sendinblue (Méthode CURL), en sorant les résultats avec un tableau et des colonnes : Email , Sujet, événements (délivré, cliqué etc.)

Actuellement, je ne peux afficher que la première ligne, je ne sais pas pourquoi.

Toute aide est la bienvenue,

Merci d'avance.
<?php
 
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
 
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.send!nblue.c0m/v3/smtp/statistics/events?limit=50&offset=0&sort=desc",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "accept: application/json",
        "api-key: XXX",
        "content-type: application/json"
    ),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
 
$data =  json_decode($response);
 
echo '<table>';
        foreach($data as $result){
          echo '<tr>';
            echo '<td>'.$result[0]->email.'</td>';
            echo '<td>'.$result[0]->subject.'</td>';
          echo '</tr>';
        }
        echo '</table>';
 
 
?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

24 mars 2022, 12:25

Il faut que tu avances dans ton debugage :
- que te renvoie l'API ?
- que te donne var_dump($data);

Si ton appel à l'API ne te donne pas les données attendues, mon conseil est d'utiliser Postman pour faire tes tests d'API et une fois que tu as ce qu'il faut tu intègre celà dans ton code PHP (Postman permet aussi de générer le code PHP/Curl directement pour faire l'appel)
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 4 Messages

24 mars 2022, 12:39

Merci pour la réponse.

En faisant un var_dump j'obtiens:

Code : Tout sélectionner

string(14562) "{"events":[{"email":"XXX","date":"2022-03-23T18:23:47.254+01:00","subject":"✅ Félicitation votre compte membre est désormais activé !","messageId":"<[email protected]!nblue.c0m>","event":"clicks","tag":"","ip":"XXX","link":"XXX","from":"XXX"},
En utilisant la section de développement de sendinblue (avec une clé API) , cela donne :

Voici l'aperçu : https://i.imgur(dot)com/TTupfGg.png (remplacer (dot) par .)

Petit nouveau ! | 4 Messages

24 mars 2022, 12:47

Il faut que tu avances dans ton debugage :
- que te renvoie l'API ?
- que te donne var_dump($data);

Si ton appel à l'API ne te donne pas les données attendues, mon conseil est d'utiliser Postman pour faire tes tests d'API et une fois que tu as ce qu'il faut tu intègre celà dans ton code PHP (Postman permet aussi de générer le code PHP/Curl directement pour faire l'appel)
Sur postman j'en suis à ce niveau : https://i.imgur(dot)com/3e534xP.png

Petit nouveau ! | 4 Messages

25 mars 2022, 01:18

Up : Résolu :D Merci encore pour ton aide.