We use cookies and other tracking technologies to improve your browsing experience on our website, to show you personalized content and targeted ads, to analyze our website traffic, and to understand where our visitors are coming from. By browsing our website, you consent to our use of cookies and other tracking technologies.
Този документ предоставя справка за всички функции, достъпни за Вас чрез HTTP интерфейса за изпращане на текстови съобщения.
HTTP API-то Ви позволява да интегрирате Вашето приложение (клиент) с smsb2b.com (портал) чрез използване на HTTP протокола за изпращане на съобщения.
Клиентът изпраща HTTP GET заявка към smsb2b.com HTTP интерфейса, предоставяйки списък с необходими параметри. smsb2b.com връща обратно HTTP отговор, който показва успеваемостта на транзакцията.
Обърнете внимание, че разделителя, използван за status
API заявка по-долу във върнатите данни, е символа за вертикална черта '|' (ASCII 124).
Всички подадени параметри трябва да бъдат шифровани за URL и също така да бъдат в UTF-8, както е описано в следните примери на код.
API-то отговаря на всички заявки според параметъра type
. Приемани стойности на параметъра type
са: v2
, което е стойността по подразбиране, json
и xml
.
Примерни отговори за API заявка key/get
:
URL: http://smsb2b.com/api/key/get?username=[username]&password=[password]&type=...
...&type=v2
Отговори:
6fe2dd9c06df83
...&type=json
Отговори:
{
"status" : "1",
"key" : "6fe2dd9c06df83",
"remarks" : "Success"
}
...&type=xml
Отговори:
<response>
<status>1</status>
<key>6fe2dd9c06ff83</key>
<remarks>Success</remarks>
</response>
key/get
)http://smsb2b.com/api/key/get?username=
&password=
&type=
Командите, достъпни в тази версия на smsb2b.com API-то следват по-долу.
API ключът трябва да бъде използван вместо потребителско име и парола за всички API заявки. Все пак може да използвате параметрите потребителско име и парола, но ние силно препоръчваме вместо това да използвате API ключът от съображения за сигурност.
Вие придобивате Вашия API ключ чрез key/get
заявка и го използвате за всички заявки в приложението вместо параметрите потребителско име и парола. Ако трябва да смените API ключа, можете да го направите чрез key/reset
заявка.
key/get
и key/reset
заявките са единствените, които изискват използването на потребителско име и парола.
След като вземете Вашия API ключ, можете да го използвате за всички други заявки в приложението.
key/get
)http://smsb2b.com/api/key/get?username=
&password=
&type=
key/reset
)http://smsb2b.com/api/key/reset?username=
&password=
&type=
...&type=v2
Отговори:
6fe2dd9c06df83
...&type=json
Отговори:
{
"status" : "1",
"key" : "6fe2dd9c06df83",
"remarks" : "Success"
}
...&type=xml
Отговори:
<response>
<status>1</status>
<key>6fe2dd9c06ff83</key>
<remarks>Success</remarks>
</response>
URL: http://smsb2b.com/api/sms/send?key=[API Key]
Параметър | Описание | Наличност |
---|---|---|
text |
Съобщение за изпращане. Трябва да е шифровано за URL. | Задължително |
to |
MSIDSN на получателя, на когото съобщението ще бъде изпратено. Например: 49175123456 | Задължителен |
from |
ID на подателя (ако е буквено-числов - максимум 11 символа, ако е числов - максимум 16 символа) | Незадължителен |
flash |
Задайте като вярно, за да изпратите Флаш съобщение | Незадължителен |
ucs |
Задайте като вярно, за да изпратите текстовото съобщение с използване на UCS кодиране | Незадължителен |
timestamp |
Задайте таймстамп-а, за да изпратите текстовото съобщение с Unix таймстамп | Незадължителен |
type |
Типа на API отговорите може да бъде v2 , json или xml |
Незадължителен |
...&type=v2
Отговори:
1234567890
...&type=json
Отговори:
{
"status" : "1",
"id" : "1234567890",
"balance" : "1234",
"remarks" : "Success"
}
...&type=xml
Отговори:
<response>
<status>1</status>
<id>1234567890</id>
<balance>1234</balance>
<remarks>Success</remarks>
</response>
Описание | |
---|---|
status |
1 за изпратено съобщение, в противен случай изпращането неуспешно |
id |
ID номера на съобщението (или 0, ако е неуспешно). Отчетите за доставка са дадени според ID-тата на съобщенията |
balance |
баланс на акаунта |
remarks |
Забележки относно заявката |
sms/send
)http://smsb2b.com/api/sms/send?key=
&to=
&from=
&text=Hello&type=
<?php // Simple SMS send function function sendSMS($key, $to, $message, $originator) { $URL = "http://smsb2b.com/api/sms/send?key=" . $key . "&to=" . $to; $URL .= "&text=" . urlencode( $message ) . '&from=' . urlencode( $originator ); $fp = fopen( $URL, 'r' ); return fread( $fp, 1024 ); } // Example of use $response = sendSMS( 'My API Key', '4917512345', 'My test message', 'MyMessage' ); echo $response; ?>
<?php // Simple SMS send function function sendSMS($key, $to, $message, $originator) { $URL = "http://smsb2b.com/api/sms/send?key=" . $key . "&to=" . $to; $URL .= "&text=".urlencode($message).'&from='.urlencode($originator); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $URL); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch); return $output; } // Example of use $response = sendSMS('My API Key', '4917512345', 'My test message', 'MyMessage'); echo $response ; ?>
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; // Uses Apache Common URL utils, download from apache.org and put it in CLASSPATH import org.apache.commons.codec.binary.Base64; // Simple send SMS programm public class SendSMS { public static String sendSMS( String key, String to, String message, String originator ) { String webPage; try { webPage = "http://smsb2b.com/api/sms/send?key=" + key + "&to=" + to + "&text=" + URLEncoder.encode( message, "UTF-8" ) + "&from=" + URLEncoder.encode( originator, "UTF-8" ); } catch ( UnsupportedEncodingException e ) { return "UnsupportedEncodingException"; } try{ URL url = new URL(webPage); URLConnection urlConnection = url.openConnection(); InputStream is = urlConnection.getInputStream(); InputStreamReader isr = new InputStreamReader(is); int numCharsRead; char[] charArray = new char[1024]; StringBuffer sb = new StringBuffer(); while ((numCharsRead = isr.read(charArray)) > 0) { sb.append(charArray, 0, numCharsRead); } String result = sb.toString(); return result; } catch ( Exception e ){ return "MalformedURLException"; } } public static void main( String[] args ){ // Example of use String response = sendSMS( "My API Key", "4917512345", "My test message", "MyMessage" ); System.out.println( response ); } }
<% mykey = "My API Key" 'put your API Key here mobile = "4917512345" message = Server.URLEncode("My test message") originator = Server.URLEncode("TextMessage") url = "http://smsb2b.com/api/sms/send?key=" + mykey + "&to=" + mobile + "&text=" + message + "&from=" + originator set objSrvHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP") objSrvHTTP.open "GET", url, False objSrvHTTP.send() Resp = objSrvHTTP.responseText Response.Write( Resp ) %>
using System; using System.IO; using System.Net; using System.Text; using System.Web; namespace SendSMS { class Program { public static string SendSMS( string key, string to, string message, string originator ) { StringBuilder sb = new StringBuilder(); byte[] buf = new byte[ 1024 ]; string url = "http://smsb2b.com/api/sms/send?key=" + key + "&to=" + to + "&text=" + HttpUtility.UrlEncode( message ) + "&from=" + HttpUtility.UrlEncode( originator ); HttpWebRequest request = ( HttpWebRequest ) WebRequest.Create( url ); HttpWebResponse response = ( HttpWebResponse ) request.GetResponse(); Stream resStream = response.GetResponseStream(); string tempString = null; int count = 0; do { count = resStream.Read( buf, 0, buf.Length ); if ( count != 0 ) { tempString = Encoding.ASCII.GetString( buf, 0, count ); sb.Append( tempString ); } } while ( count > 0 ); return sb.ToString(); } static void Main( string[] args ) { string respXML = SendSMS( "My API Key", "4917512345", "My test message", "MyMessage" ); Console.WriteLine( respXML ); } } }
/* * Send SMS C/C++ example need curllib download from http://curl.haxx.se/ */ #include <stdio.h> #include <tchar.h> #include <string.h> #include <curl/curl.h> #define URLSIZE 512 struct MemoryStruct { char *memory; size_t size; }; /* Converts a hex character to its integer value */ char from_hex(char ch) { return isdigit(ch) ? ch - '0' : tolower(ch) - 'a' + 10; } /* Converts an integer value to its hex character*/ char to_hex(char code) { static char hex[] = "0123456789abcdef"; return hex[code & 15]; } /* Returns a url-encoded version of str */ char *url_encode(char *str) { char *pstr = str, *buf = (char *)malloc(strlen(str) * 3 + 1), *pbuf = buf; while (*pstr) { if (isalnum(*pstr) || *pstr == '-' || *pstr == '_' || *pstr == '.' || *pstr == '~') *pbuf++ = *pstr; else if (*pstr == ' ') *pbuf++ = '+'; else *pbuf++ = '%', *pbuf++ = to_hex(*pstr >> 4), *pbuf++ = to_hex(*pstr & 15); pstr++; } *pbuf = '\0'; return buf; } /* CURL Callback write function */ static size_t WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp) { size_t realsize = size * nmemb; struct MemoryStruct *mem = (struct MemoryStruct *)userp; mem->memory = (char *)realloc(mem->memory, mem->size + realsize + 1); if (mem->memory == NULL) { /* out of memory! */ printf("not enough memory (realloc returned NULL)\n"); exit(EXIT_FAILURE); } memcpy(&(mem->memory[mem->size]), contents, realsize); mem->size += realsize; mem->memory[mem->size] = 0; return realsize; } /* Send SMS */ char * sendSMS(const char *key, const char *to, char *message, char *originator) { static char url[URLSIZE] = "http://smsb2b.com/api/sms/send?key="; char *encoded; CURL *curl; CURLcode res; struct MemoryStruct chunk; chunk.memory = (char *)malloc(1); /* will be grown as needed by the realloc above */ chunk.size = 0; /* no data at this point */ curl = curl_easy_init(); if(curl) { strcat_s(url, URLSIZE, key); strcat_s(url, URLSIZE, "&to="); strcat_s(url, URLSIZE, to); strcat_s(url, URLSIZE, "&text="); encoded = url_encode(message); strcat_s(url, URLSIZE, encoded); free(encoded); encoded = url_encode(originator); strcat_s(url, URLSIZE, "&from="); strcat_s(url, URLSIZE, encoded); free(encoded); curl_easy_setopt(curl, CURLOPT_URL, url); /* send all data to this function */ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteMemoryCallback); /* we pass our 'chunk' struct to the callback function */ curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk); if((res = curl_easy_perform(curl)) != CURLE_OK) { return NULL; } curl_easy_cleanup(curl); } return chunk.memory; } int main(void) { char *response; response = sendSMS("My API Key", "4917512345", "My test message", "MyMessage"); if(response != NULL) { printf(response); free(response); } getchar(); return 0; }
#include <iostream> #include <string> #using <System.Dll> #using <System.Web.Dll> using namespace std; using namespace System; using namespace System::Web; using namespace System::Net; using namespace System::IO; using namespace System::Runtime::InteropServices; ref class SMSSender { private: static String^ Key = "My API Key"; public: SMSSender() {} String^ SendSMS(String^ To, String^ Message, String^ From) { Message = HttpUtility::UrlEncode(Message); From = HttpUtility::UrlEncode(From); String^ URL = "http://smsb2b.com/api/sms/send?key=" + Key + "&text=" + Message + "&from=" + From + "&to=" + To; WebRequest^ Handle = WebRequest::Create(URL); WebResponse^ HTTPResponse = Handle->GetResponse(); StreamReader^ Stream = gcnew StreamReader(HTTPResponse->GetResponseStream()); String^ Response = Stream->ReadToEnd()->Trim(); HTTPResponse->Close(); return Response; } }; int main() { SMSSender^ test = gcnew SMSSender(); String^ resp = test->SendSMS("4917512345", "My test message", "MyMessage"); Console::WriteLine(resp); return 0; }
require 'net/http' require 'uri' def send_sms( key, to, message, originator ) requested_url = 'http://smsb2b.com/api/sms/send?key=' + key + "&to=" + to + "&text=" + URI.escape( message ) + "&from=" + URI.escape( originator ) url = URI.parse( requested_url ) full_path = ( url.query.blank? ) ? url.path : "#{url.path}?#{url.query}" the_request = Net::HTTP::Get.new( full_path ) the_response = Net::HTTP.start( url.host, url.port ) { |http| http.request( the_request ) } raise "Response was not 200, response was #{the_response.code}" if the_response.code != "200" return the_response.bodyend resp = send_sms( 'My API Key', '4917512345', 'My test message', 'MyMessage' ) puts(resp)
Imports System.Web Module Module1 Public Function SendSMS( ByVal key As String, ByVal toPhone As String, ByVal message As String, ByVal originator As String ) Dim request As HttpWebRequest Dim response As HttpWebResponse = Nothing Dim reader As StreamReader Dim url As String = "http://smsb2b.com/api/sms/send?key=" & key & "&to=" & toPhone & "&text=" & System.Web.HttpUtility.UrlEncode( message ) & "&from=" & System.Web.HttpUtility.urlencode( originator ) Try ' Create the web request request = DirectCast(WebRequest.Create(url), HttpWebRequest) ' Get response response = DirectCast(request.GetResponse(), HttpWebResponse) ' Get the response stream into a reader reader = New StreamReader(response.GetResponseStream()) ' Return response SendSMS = reader.ReadToEnd() Finally If Not response Is Nothing Then response.Close() Console.WriteLine("Error connecting") End If End Try End Function Sub Main() Dim result As String = SendSMS( "My API Key", "4917512345", "My test message", "MyMessage" ) Console.WriteLine( result ) Console.ReadKey() End Sub End Module
http://smsb2b.com/api/balance/get?key=[API Key]
Броя на оставащите текстови съобщения в акаунта.
...&type=v2
Отговори:
1234
...&type=json
Отговори:
{
"status" : "1",
"balance" : "1234",
"remarks" : "Success"
}
...&type=xml
Отговори:
<response>
<status>1</status>
<balance>1234</balance>
<remarks>Success</remarks>
</response>
balance/get
)http://smsb2b.com/api/balance/get?key=
&type=
http://smsb2b.com/api/status/get?key=[API Key]
Връща всички съобщения, чиито статус е бил променен, разделени от вертикална черта |
(когато параметъра type
е v2
).
Статусът може да бъде s
(изпратено), d
(доставено) или f
(неуспешно).
...&type=v2
Отговори:
id_1 | status_1 |
id_2 | status_2 |
...... |
id_N | status_N
...&type=json
Отговори:
{
"0" : {
"id" : "1231223122",
"status" : "d"
},
"1" : {
"id" : "1234561232",
"status" : "f"
},
"status" : "1",
"total" : "2",
"remarks" : "Success"
}
...&type=xml
Отговори:
<response>
<status>1</status>
<total>2</total>
<remarks>Success</remarks>
<sms>
<id>1231223122</id>
<status>d</status>
</sms>
<sms>
<id>1234561232</id>
<status>f</status>
</sms>
</response>
status/get
)http://smsb2b.com/api/status/get?key=
&type=