We use cookies

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.

REST SMS API v.2 за разработчици - комуникиране с портала за текстови съобщения.

Този документ предоставя справка за всички функции, достъпни за Вас чрез HTTP интерфейса за изпращане на текстови съобщения.
HTTP API-то Ви позволява да интегрирате Вашето приложение (клиент) с smsb2b.com (портал) чрез използване на HTTP протокола за изпращане на съобщения.

Обща информация

Клиентът изпраща HTTP GET заявка към smsb2b.com HTTP интерфейса, предоставяйки списък с необходими параметри. smsb2b.com връща обратно HTTP отговор, който показва успеваемостта на транзакцията.

Обърнете внимание, че разделителя, използван за status API заявка по-долу във върнатите данни, е символа за вертикална черта '|' (ASCII 124).

Всички подадени параметри трябва да бъдат шифровани за URL и също така да бъдат в UTF-8, както е описано в следните примери на код.

Формати на API отговори

API-то отговаря на всички заявки според параметъра type. Приемани стойности на параметъра type са: v2, което е стойността по подразбиране, json и xml.
Примерни отговори за API заявка key/get:

...&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 Key

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>
 

Изпращане на текстово съобщение

RESTful SMS API v.2

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


Вземи баланс

URL:   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=
Изпробвайте го  

Вземи статус

URL:   http://smsb2b.com/api/status/get?key=[API Key]

Връща

Връща всички съобщения, чиито статус е бил променен, разделени от вертикална черта | (когато параметъра type е v2).

Статусът може да бъде s (изпратено), d (доставено) или f (неуспешно).

...&type=v2

Отговори:

...&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=
Изпробвайте го  
Top of page