Envío por lotes
- Home
- Envío por lotes
Enviar SMS
Esta solicitud se utiliza para enviar SMS por lotes de 500 en tiempo real o diferido …
URL
POST https://api.smspartner.fr/v1/bulk-send
Configuraciones
Cada solicitud de API admite los siguientes parámetros :
- La plataforma no envía SMS comercial entre las 22h y las 8 am de lunes a viernes y los domingos y festivos (establecidos legalmente). Si un SMS es enviado, estará en pausa hasta el siguiente día hábil a las 8 am.
- ¿Usted no envía mensaje de texto comercial? contáctese con nosotros : help@smspartner.fr
apiKey | clave de API de su cuenta. Usted lo consigue en su Cuenta de SMS Partner |
---|---|
SMSList |
número de teléfono : los números de teléfono del destinatario. mensaje : Contenido de SMS. 160 caracteres por SMS (más allá, que se contarán SMS extra por 153 caracteres). Advertencia, algunos caracteres especiales y acentuados serán reemplazados cuando se envíen :
|
Ajustes opcionales | |
gamme | Gama de SMS, su valor debe ser :
Si se omite, el SMS se enviará como Premium |
sender | Nombre del remitente. Si el remitente se deja en blanco, el SMS se envía con un operador abreviado como remitente (por ejemplo 36xxx).
El número de caracteres para el nombre de la estación debe estar entre 3 y 11 inclusive, y no debe contener caracteres especiales. |
scheduledDeliveryDate | Fecha de envío del SMS, el formato dd/mm/YYYY . Para ser definido sólo si desea que el SMS se enviará fuera de línea. |
time | Hora de envío del SMS (0-24 formato), obligatorio si scheduledDeliveryDate se define. |
minute | Tiempo de minutos para el envío de SMS (0-55 formato, intervalo de cinco minutos). , obligatorio si scheduledDeliveryDate se define. |
isStopSms | Gama premium 1 para agregar la señal de STOP al final del SMS (necesario para SMS comercial).
Rango de bajo coste : Este parámetro no es aplicable para esta gama, es necesario añadir manualmente el NoPub=STOP para SMS comercial. |
sandbox | Para el envío de SMS de prueba, puede utilizar el parámetro de sandbox :
Si no se envía un SMS, no habrá ningún cargo en su cuenta. |
_format | Formato de la respuesta. Se puede elegir entre JSON o XML . Por defecto, el formato de respuesta es JSON . |
apiKey | Clave de API de su cuenta. Usted lo consigue en su Cuenta de SMS Partner. |
---|---|
phoneNumber | Números de teléfono de los destinatarios. Para enviar varios números de SMS deben estar separados por comas. Pueden ser :
|
message | Contenido de los mensajes SMS. 160 caracteres por SMS (más allá, que se contarán SMS extra por 153 caracteres).
Advertencia, algunos caracteres especiales y acentuados será reemplazado cuando se envía :
|
Ajustes opcionales | |
gamme | Gama de SMS, su valor debe ser :
Si se omite, el SMS se enviará como Premium |
sender | Nombre del remitente. Si el transmisor se deja en blanco, el SMS se envía con un operador abreviado como remitente (por ejemplo 36xxx).
El número de caracteres para el nombre de la estación debe estar entre 3 y 11 inclusive, y no debe contener caracteres especiales. |
scheduledDeliveryDate | Fecha de envío del SMS, el formato dd/mm/YYYY . Para ser definido sólo si desea que el SMS se enviará fuera de línea. |
time | Hora de envío del SMS (0-24 formato), obligatorio si scheduledDeliveryDate se define. |
minutes | Tiempo de minutos para el envío de SMS (0-55 formato, intervalo de cinco minutos). , obligatorio si scheduledDeliveryDate se define. |
isStopSms | Gama premium 1 para agregar la señal de STOP al final del SMS (necesario para SMS comercial).
Rango de bajo coste: Este parámetro no es aplicable para esta gama, es necesario añadir manualmente el NoPub=STOP para SMS comercial. |
sandbox | Para el envío de SMS de prueba, puede utilizar el parámetro de sandbox :
No se enviará SMS, y no habrá ningún cargo en su cuenta. |
_format | Formato de la respuesta. Se puede elegir entre JSON o XML . Por defecto, el formato de respuesta es JSON . |
Solicitud
Ejemplo de solicitud:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<?php // Prepare data for POST request $fields = array( 'apiKey'=> 'YOUR API KEY', 'sender' => 'mycompany', 'scheduledDeliveryDate'=> '21/10/2014', 'time'=> 9, 'minute'=> 0, 'SMSList'=> array( array( 'phoneNumber'=> '06xxxxxxx1', 'message'=> 'msg 0' ), array( 'phoneNumber'=> '06xxxxxxx2', 'message'=> 'msg 1' ) ) ); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL,'https://api.smspartner.fr/v1/bulk-send'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 10); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS,json_encode($fields)); $result = curl_exec($curl); curl_close($curl); // Process your response here echo $result; ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
Imports System.IO Imports System.Net Module Module1 Sub Main() Dim base_url As String = "http://api.smspartner.fr/v1/" Dim apiKey As String = "VOTRE_APIKEY" #send sms url = base_url & "bulk-send" #note : utiliser une librairie JSON en production, par exemple : #https//www.nuget.org/packages/Newtonsoft.Json/ Dim parameters As String = String.Format( "{{""apiKey"":""{0}"",""sender"":""{1}"",""SMSList"":""{2}""}}", apiKey, "mycompany", {{ ""phoneNumber"":"06xxxxxxx1",""message"":"msg1"},{ ""phoneNumber"":"06xxxxxxx2",""message"":"msg2"}} ) Console.Write(parameters) apiRequest("POST", url, parameters) End Sub Function apiRequest(method As String, url As String, parameters As String) As String Dim request As HttpWebRequest request = WebRequest.Create(url) request.Method = method request.Timeout = 10000 # timeout in ms request.ContentType = "application/json; charset=utf-8" request.ContentLength = 0 #set POST data If Not String.IsNullOrEmpty(parameters) Then request.ContentLength = parameters.Length Using reqStream As StreamWriter = New StreamWriter(request.GetRequestStream()) reqStream.Write(parameters) End Using End If #get response Dim returnValue As String = Nothing Using response As HttpWebResponse = request.GetResponse() If response.StatusCode = HttpStatusCode.OK Then Using resStream = response.GetResponseStream() If resStream IsNot Nothing Then Using reader As New StreamReader(resStream) returnValue = reader.ReadToEnd() End Using End If End Using End If End Using apiRequest = returnValue End Function End Module |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# std import logging import json from collections import OrderedDict # 3p import requests API_KEY = "MY API KEY" URL = "https://api.smspartner.fr/v1" class SMSPartner(): def send_sms(self,phone_numbers, msg, sender = "SMSPartner"): #sender = "DEMOSMS" print(phone_numbers) data = {"apiKey":APIKEY,"sender":sender,"SMSList":[{"phoneNumber":"06xxxxxxx1","message":"msg1"},{"phoneNumber":"06xxxxxxx2","message":"msg2"}]} url = URL + "/bulk-send" r = requests.post(url, data=json.dumps(data), verify=False) r_json = r.json() if r_json.get("success") == True: print(r_json) status = True else: print("SMS msg {} not delivered to {}".format(msg, phone_numbers)) status = False return status |
1 |
curl -H "Content-Type: application/json" -X POST -d '{"apiKey":"xxxxx","phoneNumber":"xxxx","message":"test","sender":"mycompany"}' https://api.smspartner.fr/v1/send |
Respuestas
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
{ "success": true, "code": 200, "message_id": xxxxxx, "currency": "EUR", "cost": 0.076, "nbSMS": 2, "SMSResponse_List": [ { "success": true, "code": 200, "nbSms": 1, "cost": 0.038, "phoneNumber": "+336xxxxxxx1" }, { "success": true, "code": 200, "nbSms": 1, "cost": 0.038, "phoneNumber": "+336xxxxxxx2" } ] |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?xml version='1.0' encoding='UTF-8'?> <result> <entry>true</entry> <entry>200</entry> <entry>xxxxxx</entry> <entry> <![CDATA[EUR]]> </entry> <entry>0.076</entry> <entry>2</entry> <entry> <entry> <entry>true</entry> <entry>200</entry> <entry>1</entry> <entry>0.038</entry> <entry> <![CDATA[+336xxxxxxx1]]> </entry> </entry> <entry> <entry>true</entry> <entry>200</entry> <entry>1</entry> <entry>0.038</entry> <entry> <![CDATA[+336xxxxxxx2]]> </entry> </entry> </entry> </result> |
Errores
Ejemplo de mensaje de error:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
{ "success": false, "code":9, "error": [{ "elementId": "children[message].data", "message": "Le message est requis" }, { "elementId": "children[phoneNumber].data", "message": "Ce numero de telephone n'est pas valide (922264)" }, { "elementId": "children[sender].data", "message": "L'emetteur ne peut pas etre plus long que 11 caracteres" }, { "elementId": "children[scheduledDeliveryDate].data", "message": "La date (21/11/2014 \u00e0 :) est anterieure a la date actuelle." }, { "elementId": "children[minute].data", "message": "La minute est requise" }, { "elementId": "children[time].data", "message": "L'heure est requise" }] } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?xml version='1.0' encoding='UTF-8'?> <result> <entry>false</entry> <entry>9</entry> <entry> <entry> <entry>children[message].data</entry> <entry>Le message est requis</entry> </entry> <entry> <entry>children[phoneNumber].data</entry> <entry>Ce numéro de téléphone n'est pas valide (922264)</entry> </entry> <entry> <entry>children[sender].data</entry> <entry>L'émetteur ne peut pas être plus long que 11 caractères</entry> </entry> <entry> <entry>children[scheduledDeliveryDate].data</entry> <entry>La date (21/11/2014 à :) est anterieure à la date actuelle. Si vous souhaitez l'envoyer maintenant vous devez sélectionner [Envoi immédiat]</entry> </entry> <entry> <entry>children[minute].data</entry> <entry>La minute est requise</entry> </entry> <entry> <entry>children[time].data</entry> <entry>L'heure est requise</entry> </entry> </entry> </result> |
Código de control
Código de error | ||
---|---|---|
1 | Se requiere que la clave de la API | |
2 | Se requiere el número de teléfono | |
9 | Al menos una restricción fue violada al enviar :
|
|
10 | Clave de API no válido | |
11 | Falta de crédito |