Envoi unitaire
- Home
- Envoi unitaire
Texting
Esta consulta é usado para enviar mensagens de texto em tempo real ou atrasado.
URLs
POST https://api.smspartner.fr/v1/send
Configurações
Cada solicitação de API suporta os seguintes parâmetros :
- A plataforma não envia SMS comercial entre 22h e 08:00 nos dias de semana e aos domingos e feriados (restrição legal). Se envia SMS está em pausa até o próximo dia de trabalho às 8h.
- Você não enviar mensagem de texto comercial? Contacte-nos: help@smspartner.fr
apiKey | Chave de API da sua conta. Você obtê-lo em sua conta SMS Partner. |
---|---|
phoneNumbers | PhoneNumbers números de telefone dos destinatários. Para enviar vários números de SMS devem ser separados por vírgulas. Eles podem ser :
|
post | Conteúdo da mensagem SMS. 160 caracteres por SMS (para além, você será contado SMS extra por 153 caracteres).
Atenção, alguns caracteres especiais e acentuados serão substituídos quando o envio :
|
Configurações opcionais | |
gama | Gama de SMS, o seu valor deve ser:
Se omitido, o SMS será enviado para a gama premium |
remetente | Do nome do remetente da mensagem. Se o transmissor for deixado em branco, o SMS será enviado com um operador shortcode como o remetente (por exemplo 36xxx).
O número de caracteres para o nome da estação deve estar entre 3 e 11, inclusive, e não deve conter caracteres especiais. |
scheduledDeliveryDate | Data de envio do SMS, o formato dd / mm / aaaa. apenas para ser definido se desejar o SMS ser enviados offline. |
tempo | Tempo O tempo que o SMS (0-24 formato), obrigatório se scheduledDeliveryDate está definida. |
minuto | Tempo de hora para o envio de SMS (formato 0-55, intervalo de cinco minutos), obrigatória se scheduledDeliveryDate é definido. |
isStopSms | Gama premium : 1 para adicionar o sinal de STOP no final do SMS (necessário para SMS comercial).
Gama Faixa Lowcost : Este parâmetro não é aplicável para esta faixa, é necessário adicionar manualmente o NoPub = sinal de STOP para SMS comercial. |
sandbox | Para testar enviando SMS, você pode usar o parâmetro sandbox :
No SMS será enviado, e não haverá nenhuma carga em sua conta. |
_formato | Formato de resposta. Você pode escolher entre JSON ou XML . Por padrão, o formato de resposta é JSON . |
Petição
Consulta de exemplo:
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 |
<?php // Prepare data for POST request $fields = array( 'apiKey'=> 'YOUR API KEY', 'phoneNumbers'=> '+336xxxxxxxx', 'message'=> 'This is your message', 'sender' => 'mycompany', 'scheduledDeliveryDate'=> '21/10/2014', 'time'=> 9, 'minute'=> 0 ); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL,'https://api.smspartner.fr/v1/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 |
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 & "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}"",""phoneNumbers"":""{1}"",""message"":""{2}""}}", apiKey, "+33XXXXXXXXX", "message de test") 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 32 33 34 |
# 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 = OrderedDict([ ("apiKey", API_KEY), ("phoneNumbers", phone_numbers), ("message", msg), ("sender", sender) ]) url = URL + "/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","phoneNumbers":"xxxx","message":"test","sender":"mycompany"}' https://api.smspartner.fr/v1/send |
Respostas
1 2 3 4 5 6 7 8 |
{ "success":true, "code":200, "message_id":307, "nb_sms": 1, "cost": 0.038, "currency": "EUR" } |
1 2 3 4 5 6 7 8 9 10 11 |
<?xml version='1.0' encoding='UTF-8'?> <result> <entry>true</entry> <entry>200</entry> <entry>306</entry> <entry>1</entry> <entry>0.038</entry> <entry> <![CDATA[EUR]]> </entry> </result> |
Erros
Exemplo mensagem de erro :
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[phoneNumbers].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[phoneNumbers].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 controle
Código de erro | ||
---|---|---|
1 | A chave API é necessária | |
2 | O número de telefone é necessária | |
9 | Pelo menos uma restrição foi violada quando o envio :
|
|
10 | Chave de API inválida | |
11 | A falta de fundos |