Bonjour à toi,
que ta question est mal formulée : reformule-la différemment ;
Pas de soucis je vais faire cela :
Ayant un peu avancé par rapport à il y a 4 jours, j'ai trouver les méthodes qui théoriquement doivent me permettre de faire ce que j'ai besoin du coup je l'ai ai un peu travaillé voici maintenant mon code :
<?php
require_once('php-mailjet.class-mailjet-0.1.php');
require_once('Domaine.php');
class MailSendDomaine extends Mailjet
{
private $smtp;
private $methode = 'reportEmailstatistics';
//je lui passe le nom des domaines en paramètre pour qu'il compte le nombre d'E-mail envoyé par dommaine
private $option = array();
private $type = 'GET';
public function __construct()
{
$this->smtp = new Mailjet();
$this->option = new Mailjet();
}
public function TotalMailSend()
{
$this->option = array(1 =>"NULL",2 => "NULL", 3 => $id_domaine);
$therequest = $this->smtp->sendRequest($this->methode,$this->option,$this->type);
if($therequest === true)
{
$outgoingMailSend = $this->smtp->_response;
foreach( $outgoingMailSend->stats as $valeur)
{
echo '<td>'.$valeur->cnt_messages.'</td>';
}
}
else{
echo "Erreur de récupération des données";
}
}
}
?>
<?php
require_once('php-mailjet.class-mailjet-0.1.php');
require_once('MailSendDomaine.php');
class Domaine extends Mailjet
{
private $smtp;
private $methode = 'userDomainlist';
private $option = array();
private $type = 'GET';
public function __construct()
{
$this->smtp = new Mailjet();
$this->oMailSend = new MailSendDomaine();
}
public function NomDomaine()
{
$therequest = $this->smtp->sendRequest($this->methode,$this->option,$this->type);
if($therequest === true)
{
$outgoingDomaine = $this->smtp->_response;
$id_domaine = $this->outgoingDomaine->domains;
var_dump($id_domaine);
foreach( $outgoingDomaine->domains as $valeur)
{
echo '<tr><td>'.$valeur->domain.'</td></tr>';
$this->oMailSend->TotalMailSend();
}
}
else{
echo "Erreur de récupération des données";
}
}
}
?>
Je vous soulagerais du code HTML c'est un simple tableau avec instanciation d'une classe et un appel de méthode.
ET ça c'est la classe de l'api :
<?php
/**
* Mailjet Public API
*
* @package API v0.1
* @author Mailjet
* @link http://api.mailjet.com/
*
*/
class Mailjet
{
var $version = '0.1';
# Choose your weapon : php, json, xml, serialize, html, csv
var $output = 'json';
# Connect thru https protocol
var $secure = true;
# Mode debug ? 0 none / 1 errors only / 2 all
var $debug = 2;
# Edit with your Mailjet Infos
var $apiKey = 'VOUS N'EN AVEZ PAS BESOIN ';
var $secretKey = 'VOUS N'EN AVEZ PAS BESOIN ';
// Constructor function
public function __construct($apiKey = false, $secretKey = false)
{
if( $apiKey ) $this->apiKey =$apiKey;
if( $secretKey ) $this->secretKey =$secretKey;
$this->apiUrl = (($this->secure) ? 'https' : 'http').'://api.mailjet.com/'.$this->version.'';
}
public function __call($method,$args) {
# params
$params = (sizeof($args) > 0) ? $args[0] : array();
# request method
$request = isset($params["method"]) ? strtoupper($params["method"]) : 'GET';
# unset useless params
if(isset($params["method"])) unset($params["method"]);
# Make request
$result = $this->sendRequest($method,$params,$request);
# Return result
$return = ($result === true) ? $this->_response : false;
if( $this->debug == 2 || ( $this->debug == 1 && $return == false ) ){
$this->debug();
}
return $return;
}
public function requestUrlBuilder($method,$params=array(),$request) {
$query_string = array('output'=>'output='.$this->output);
foreach($params as $key=>$value) {
if($request == "GET" || in_array($key,array('apikey','output'))) $query_string[$key] = $key.'='.urlencode($value);
if($key == "output") $this->output = $value;
}
$this->call_url = $this->apiUrl.'/'.$method.'/?'.join('&',$query_string);
return $this->call_url;
}
public function sendRequest($method = false,$params=array(),$request="GET") {
# Method
$this->_method = $method;
$this->_request = $request;
# Build request URL
$url = $this->requestUrlBuilder($method,$params,$request);
# Set up and execute the curl process
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curl_handle, CURLOPT_USERPWD, $this->apiKey.':'.$this->secretKey);
$this->_request_post = false;
if($request == 'POST') :
curl_setopt($curl_handle, CURLOPT_POST, count($params));
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, http_build_query($params, '', '&'));
$this->_request_post = $params;
endif;
$buffer = curl_exec($curl_handle);
if($this->debug>2) var_dump($buffer);
# Response code
$this->_response_code = curl_getinfo($curl_handle,CURLINFO_HTTP_CODE);
# Close curl process
curl_close($curl_handle);
# RESPONSE
$this->_response = ($this->output == 'json') ? json_decode($buffer) : $buffer;
return ($this->_response_code == 200) ? true : false;
}
public function debug() {
echo '<style type="text/css">';
echo '
#debugger {width: 100%; font-family: arial;}
#debugger table {padding: 0; margin: 0 0 20px; width: 100%; font-size: 11px; text-align: left;border-collapse: collapse;}
#debugger th, #debugger td {padding: 2px 4px;}
#debugger tr.h {background: #999; color: #fff;}
#debugger tr.Success {background:#90c306; color: #fff;}
#debugger tr.Error {background:#c30029 ; color: #fff;}
#debugger tr.Not-modified {background:orange ; color: #fff;}
#debugger th {width: 20%; vertical-align:top; padding-bottom: 8px;}
';
echo '</style>';
echo '<div id="debugger">';
if(isset($this->_response_code)) :
if($this->_response_code == 200) :
echo '<table>';
echo '<tr class="Success"><th>Success</th><td></td></tr>';
echo '<tr><th>Status code</th><td>'.$this->_response_code.'</td></tr>';
if(isset($this->_response)) :
echo '<tr><th>Response</th><td><pre>'.utf8_decode(print_r($this->_response,1)).'</pre></td></tr>';
endif;
echo '</table>';
elseif($this->_response_code == 304) :
echo '<table>';
echo '<tr class="Not-modified"><th>Error</th><td></td></tr>';
echo '<tr><th>Error no</th><td>'.$this->_response_code.'</td></tr>';
echo '<tr><th>Message</th><td>Not Modified</td></tr>';
echo '</table>';
else :
echo '<table>';
echo '<tr class="Error"><th>Error</th><td></td></tr>';
echo '<tr><th>Error no</th><td>'.$this->_response_code.'</td></tr>';
if(isset($this->_response)) :
if( is_array($this->_response) OR is_object($this->_response) ):
echo '<tr><th>Status</th><td><pre>'.print_r($this->_response,true).'</pre></td></tr>';
else:
echo '<tr><th>Status</th><td><pre>'.$this->_response.'</pre></td></tr>';
endif;
endif;
echo '</table>';
endif;
endif;
$call_url = parse_url($this->call_url);
echo '<table>';
echo '<tr class="h"><th>API config</th><td></td></tr>';
echo '<tr><th>Protocole</th><td>'.$call_url['scheme'].'</td></tr>';
echo '<tr><th>Host</th><td>'.$call_url['host'].'</td></tr>';
echo '<tr><th>Version</th><td>'.$this->version.'</td></tr>';
echo '</table>';
echo '<table>';
echo '<tr class="h"><th>Call infos</th><td></td></tr>';
echo '<tr><th>Method</th><td>'.$this->_method.'</td></tr>';
echo '<tr><th>Request type</th><td>'.$this->_request.'</td></tr>';
echo '<tr><th>Get Arguments</th><td>';
$args = explode("&",$call_url['query']);
foreach($args as $arg) {
$arg = explode("=",$arg);
echo ''.$arg[0].' = <span style="color:#ff6e56;">'.$arg[1].'</span><br/>';
}
echo '</td></tr>';
if($this->_request_post){
echo '<tr><th>Post Arguments</th><td>';
foreach($this->_request_post as $k=>$v) {
echo $k.' = <span style="color:#ff6e56;">'.$v.'</span><br/>';
}
echo '</td></tr>';
}
echo '<tr><th>Call url</th><td>'.$this->call_url.'</td></tr>';
echo '</table>';
echo '</div>';
}
}
Voici la doc des méthodes que j'utilisent (ne prenez pas peur il y a juste quelques lignes sur ce quelle fait ce qu'elle retourne et ses éventuels argument :
https://fr.mailjet.com/docs/api/report/emailstatistics
Et maintenant voici le problème c'est que $id_domaine est nul du coup la méthode qui compte les message en prenant en paramètre le nom du domaine bah elle ne le comprend pas et ça ne fonctionne pas, une idée de comment le récupérer et l'envoyer en paramètre de reportEmailSend ? ?
Donc voila je ne demande pas que l'on fasse le travail à ma place j'aimerais juste que l'on pointe du doigt mes grossière erreurs et que l'on me donne d'éventuelles pistes ou alors que l'on me dise franchement que vous ne pouvez pas m'aidez par manque de temps d'envie ou de compétence, je n'en voudrais à personne sachant que c'est pour moi un loisir et ça me permet juste de progresser.
que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
Je sais que je ne suis pas excusable pour cette pratique mais il se peut que des personnes soient passées à coté du sujet sans forcément le voir.
que la réponse demandée exige un travail important que personne ne va faire à ta place ;
Dans ce cas pourquoi ne pas me le dire
En tout cas je m'excuse encore pour cette pratique interdite ça sera la dernière .
J'espère avoir répondu à vos interrogations!
Cordialement.