SMS Pro - Problème d'envoi de sms - API php
... / Problème d'envoi de sms -...
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Frage

Problème d'envoi de sms - API php

Von
KatiaH2
Erstellungsdatum 2021-06-02 09:55:56 (edited on 2024-09-04 14:07:59) in SMS Pro

Bonjour,

nous avons un script php qui s'occupe de récupérer les numéros de portable en base de donnée, toutefois lors de l'envoi nous avons ce message d'erreur :

**{"message":"[receivers] string Data is not an array for an array type"}**

Le code est récupéré depuis le guide OVH :

/**
* @param array $receivers
* @param string $text
*
* @return array
*/
public function sendSms($receivers, $text)
{
$content = [
"charset"=> "UTF-8",
"class"=> "phoneDisplay",
"coding"=> "7bit",
"message"=> $text,
"noStopClause"=> false,
"priority"=> "high",
"receivers"=> $receivers,
"senderForResponse"=> false,
"sender" => "ISPROD",
"validityPeriod"=> 2880
];

try {
$smsService = $this->getSmsServices()[0];

//récupère le nombre de credit utilisé + numéro(s) valide(s)
$resultPostJob = $this->post('/sms/'. $smsService . '/jobs', $content);

//récupère la liste des sms en attentes
$smsJobs = $this->get('/sms/'. $smsService . '/jobs');

return [
'result_post_job' => $resultPostJob,
'sms_jobs' => $smsJobs,
'receivers' => $receivers
];
} catch (\GuzzleHttp\Exception\ClientException $ce) {
writeErrorLogs($ce->getMessage());
}
}

La variable $receivers est passé en paramètre de la fonction d'envoi. Si je remplace la variable par le tableau des destinataires que j'aurai précédemment dumpé (qui est bien un tableau de string), ça fonctionne.

// code
$content = [
"charset"=> "UTF-8",
"class"=> "phoneDisplay",
"coding"=> "7bit",
"message"=> $text,
"noStopClause"=> false,
"priority"=> "high",
"receivers"=> [ "+33xxxxxxx", "+33yyyyyyy"...],
"senderForResponse"=> false,
"sender" => "ISPROD",
"validityPeriod"=> 2880
];

// code

Une piste ?