Αρχική > Υπηρεσιες > Αποστολη μεσω SMS API

Στειλτε sms ευκολα με το http sms api μας

Είναι τόσο απλό όσο να καλέσετε ένα url με κάποιες παραμέτρους

Εισαγωγη χρήσης του SMS API

Αν δεν σας ενδιαφέρει να στέλνετε μαζικά sms από την ιστοσελίδα μας, αλλά θέλετε να ενσωματώσετε την δυνατότητα αποστολής sms στην δικιά σας ιστοσελίδα ή εφαρμογή, τότε μπορείτε να χρησιμοποιήσετε το HTTP SMS API. Χρειάζονται κάποιες βασικές γνώσεις προγραμματισμού.

Το SMS API μας είναι σχεδιασμένο να παρέχει τη μεγαλύτερη ευκολία για να στείλετε web sms μέσα από τη δική σας εφαρμογή, με χρήση της δική σας γλώσσας προγραμματισμού, πχ PHP, JAVA κ.α.

Σε αυτή τη σελίδα θα βρείτε όλο το HTTP SMS API μας για αποστολή sms. Επίσης μπoρείτε να το κατεβάστε και σε μορφή PDF την παλαιότερη έκδοση του SMS API.

"Για να δοκιμάσετε την αποστολή sms μέσω SMS API πρέπει πρώτα να έχετε εγγραφεί στην υπηρεσία μας."

Οι κυριότερες λειτουργίες που παρέχει το HTTP SMS API είναι:

1. Αποστολή sms σε ένα ή περισσότερα τηλέφωνα ανά κλήση.

Μπορείτε να στείλετε sms σε οποιαδήποτε αλφάβητο με μέχρι 100 παραλήπτες ανά κλήση πολύ εύκολα. Μετά από κάθε αποστολή με το SMS API το σύστημα μας θα σας απαντήσει πίσω δίνοντάς σας πληροφορίες για την αποστολή σας.

2. Αναφορές παράδοσης για κάθε αποστολή

Με αυτή τη λειτουργικότητα μπορείτε να πάρετε πληροφορίες για την κατάσταση των απεσταλμένων σας sms. Το μόνο που χρειάζεστε είναι το id της αποστολής σας.

3. Προγραμματισμός αποστολής

Αν θέλετε μπορείτε να προγραμματίσετε την αποστολή μέσω του api για κάποια στιγμή στο μέλλον. Η προγραμματισμένη αποστολή είναι πολύ εύκολη και μπορεί να ακυρωθεί εξίσου εύκολα.

4. Ερώτηση υπολοίπου λογαριασμού

Ο χρήστης του SMS API μπορεί να μάθει το διαθέσιμο υπόλοιπο του λογαριασμού του και να το χρησιμοποιήσει όπως του χρειάζεται στην ανάπτυξη της εφαρμογής του.

5. Επικοινωνία με sesskey

Για μεγαλύτερη ασφάλεια στην επικοινωνία με τους server του smsbox ο χρήστης μπορεί να κάνει χρήση του sesskey. H διαδικασία είναι απλή, αντί να στέλνει σε κάθε κλήση το username και το password τα στέλνει μία φορά, ο server του επιστρέφει ένα sesskey το οποίο και χρησιμοποιεί έπειτα για τη μεταξύ τους επικοινωνία.

Δεν έχετε ακόμα λογαριασμό;

Πατήστε εδώ και πάρτε 20 sms δωρεάν
για να δοκιμάσετε την αποστολή sms με το SMS API μας.

Για να ξεκινήσετε να στέλνετε sms με το SMS API

Με λίγες γραμμές κώδικα μπορείτε να στέλνετε sms με το SMS API μας, να προγραμματίσετε αποστολές για αργότερα, να λαμβάνετε αναφορές παράδοσης ή να ρωτάτε το υπόλοιπο σε sms του λογαριασμού σας.

Για να μπορέσετε να αρχίσετε να στέλνετε sms μέσω του HTTP API πρέπει πρώτα να φτιάξετε ένα λογαριασμό στην υπηρεσία μαζικής αποστολής smsbox. Η διαδικασία είναι πολύ απλή και τα μόνα που χρειάζεστε είναι ένα κινητό τηλέφωνο και ένας λογαριασμός email.

Με τη δημιουργία του λογαριασμού παίρνετε δωρεάν 20 sms για να δοκιμάσετε την αποστολή sms μέσω του SMS API.

Για να κάνετε μία αποστολή sms μέσω του SMS API χρειάζεστε τα παρακάτω:

  1. Το username
  2. Το password
  3. Τον αποστολέα
  4. Τον παραλήπτη
  5. Το κείμενο του μηνύματος
  6. Να έχετε διαθέσιμα sms στο λογαριασμό σας

Παρακάτω δίνεται μία επεξήγηση για τις πληροφορίες που πρέπει να περνάτε σε μία κλήση του HTTP SMS API αν θέλετε να κάνετε μια αποστολή sms.
Χρήσιμες πληροφορίες μπορείτε να βρείτε και στη σελίδα Συχνές Ερωτήσεις.

(1),(2) Τα username και το password είναι αυτά που παίρνετε κατά τη δημιουργία του λογαριασμού σας.

(3) Αποστολέας είναι το κείμενο που θα φαίνεται στο τηλέφωνο αυτού που θα λάβει το sms (πριν το ανοίξει). Σαν όνομα αποστολέα μπορείτε να βάλετε μέχρι 11 λατινικούς χαρακτήρες ή μέχρι 13 ψηφία.

(4) Παραλήπτης είναι το κινητό που θα λάβει το sms. Μπορεί να είναι σε μορφή 69xxxxxxxx ή 3069xxxxxxxx ή +3069xxxxxxxx

(5) Το κείμενο του sms μπορεί να είναι μέχρι 612 ελληνικοί ή λατινικοί χαρακτήρες. Η χρέωση είναι διπλή για τα μηνύματα από 161 έως 306 χαρακτήρες, τριπλή από 307 έως 459 και τετραπλή από 460 έως 612. Οι χαρακτήρες : € , [ , ], { , } , ~ , ^ , | και \ απαιτούν μεγαλύτερο μέγεθος και λαμβάνονται σαν 2 χαρακτήρες (χρεώνονται σαν 2 ο καθένας).

Κάτι ακόμα που πρέπει να γνωρίζεται για το κείμενο του sms είναι πως αυτό μετατρέπεται αυτόματα στα κεφαλαία αν εσείς στέλνετε στα ελληνικά. Ο λόγος για τον οποίον γίνεται αυτό είναι για να εκμεταλλευτείτε το πλήθος των 160 χαρακτήρων για κάθε μονό sms.

Αν για κάποιον λόγο θέλετε να στείλετε sms μέσω SMS API με μικρούς ελληνικούς χαρακτήρες ή χαρακτήρες άλλων αλφαβήτων πλην του λατινικού, θα πρέπει να κάνετε αποστολή με την επιλογή Unicode (εξηγούμε πως γίνεται παρακάτω), Το μειονέκτημα σε αυτήν την περίπτωση είναι πως το μέγεθος του sms από 160 χαρακτήρες πέφτει στους 70 και το συνολικό μήκος του μηνύματος μπορεί να είναι μέχρι 268 χαρακτήρες.

(6) Τα sms πρέπει να τα έχετε διαθέσιμα στο λογαριασμό σας πριν από κάθε αποστολή. Αν δεν έχετε το απαραίτητο υπόλοιπο στον λογαριασμό σας και κάνετε μία αποστολή τότε θα αποσταλούν τόσα sms όσα και το διαθέσιμο υπόλοιπό σας. Δεν υπάρχει χρονικός περιορισμός για το μέχρι πότε πρέπει να έχετε στείλει τα sms του λογαριασμού σας. Διαβάστε περισσότερα σχετικά με την αγορά sms και τις πληρωμές εδώ

Δεν έχετε ακόμα λογαριασμό;

Πατήστε εδώ και πάρτε 20 sms δωρεάν
για να δοκιμάσετε την αποστολή sms με το SMS API μας.

Αποστολη SMS Με τη χρηση του HTTP SMS API

Για να στείλετε ένα sms απλά καλείτε ένα url της μορφής :
http://www.smsbox.gr/httpapi/sendsms.php?username=x&password=x&text=x&from=x&to=x

URL:

[http:// ή https://] www.smsbox.gr/httpapi/sendsms.php

Μέθοδοι:

GET, POST

Παράμετροι


Υποχρεωτικοί παράμετροι SMS API


Παράμετροι Επεξήγηση
'username' Τα username και το password είναι αυτά που παίρνετε κατά τη δημιουργία του λογαριασμού σας.
'password' Τα username και το password είναι αυτά που παίρνετε κατά τη δημιουργία του λογαριασμού σας.
'from' Αποστολέας είναι το κείμενο που θα φαίνεται στο τηλέφωνο αυτού που θα λάβει το sms (πριν το ανοίξει).

Σαν όνομα αποστολέα μπορείτε να βάλετε μέχρι 11 λατινικούς χαρακτήρες ή μέχρι 13 ψηφία.

'to' Παραλήπτης είναι το κινητό που θα λάβει το sms. Μπορεί να είναι σε μορφή 69xxxxxxxx ή 3069xxxxxxxx ή +3069xxxxxxxx

Μπορείτε να προσθέσετε μέχρι 100 τηλέφωνα σε κάθε κλήση στη μορφή: 6971111111,6972222222,6973333333,…

'text' Το κείμενο του sms μπορεί να είναι μέχρι 612 ελληνικοί ή λατινικοί χαρακτήρες. Η χρέωση είναι διπλή για τα μηνύματα από 161 έως 306 χαρακτήρες, τριπλή από 307 έως 459 και τετραπλή από 460 έως 612. Οι χαρακτήρες : € , [ , ], { , } , ~ , ^ , | και \ απαιτούν μεγαλύτερο μέγεθος και λαμβάνονται σαν 2 χαρακτήρες (χρεώνονται σαν 2 ο καθένας).

Κάτι ακόμα που πρέπει να γνωρίζεται για το κείμενο του sms είναι πως αυτό μετατρέπεται αυτόματα στα κεφαλαία αν εσείς στέλνετε στα ελληνικά. Ο λόγος για τον οποίον γίνεται αυτό είναι για να εκμεταλλευτείτε το πλήθος των 160 χαρακτήρων για κάθε μονό sms.

Αν για κάποιον λόγο θέλετε να στείλετε sms μέσω SMS API με μικρούς ελληνικούς χαρακτήρες ή χαρακτήρες άλλων αλφαβήτων πλην του λατινικού, θα πρέπει να κάνετε αποστολή με την επιλογή Unicode (εξηγούμε πως γίνεται παρακάτω), Το μειονέκτημα σε αυτήν την περίπτωση είναι πως το μέγεθος του sms από 160 χαρακτήρες πέφτει στους 70 και το συνολικό μήκος του μηνύματος μπορεί να είναι μέχρι 268 χαρακτήρες.



Προαιρετικοί παράμετροι SMS API


Παράμετροι Επεξήγηση
'encoding' Αν θέλουμε να στείλουμε sms με ελληνικούς χαρακτήρες θέτουμε αυτή τη παράμετρο ίση με UTF8.

Το κείμενο μετατρέπεται αυτόματα από μικρούς χαρακτήρες σε κεφαλαίους.

Προσοχή δεν μπορείτε να έχετε ταυτόχρονα τις προαιρετικές παραμέτρους encoding και unicode σε μία κλήση του SMS API, γιατί ο server θα σας επιστρέψει μήνυμα σφάλματος.

'coding' To coding είναι το ίδιο ακριβώς με το encoding αλλά χρησιμοποιείται για λόγους συμβατότητας προς τα πίσω. Η τιμή που μπορεί να πάρει είναι UTF8.

Το coding όπως και το encoding δεν μπορεί να χρησιμοποιηθεί στην ίδια κλήση μαζί με το Unicode.

'unicode' Η τιμή που παίρνει το unicode είναι 1.

Την χρησιμοποιείτε αν για κάποιον λόγο θέλετε να στείλετε sms μέσω SMS API με μικρούς ελληνικούς χαρακτήρες ή χαρακτήρες άλλων αλφαβήτων πλην του λατινικού.

'datetosend' Την παράμετρο αυτή τη χρησιμοποιείτε όταν θέλετε να κάνετε προγραμματισμένη αποστολή.

Η τιμή που πρέπει να της δώσετε έχει τη μορφή: 2018-10-29-11:51



Παραδείγματα αποστολής sms με χρήση SMS API


        // Request sending
	$url = "http://www.smsbox.gr/httpapi/sendsms.php";

	$username = 'yourUsername';
	$password = 'yourPassword';

	// Originator of sms (what the user see)
	$from = "SMSBOX Test";

	// We can send up to 100 sms at the same time with one HTTP SMS API call
	// This is done by dividing the phones with commas. The phones can be in 69... or 3069... format
	$to = "6977xxxxxx";

	
	$encoding ="UTF8";

	// All the small Greek letters are converted into uppercase, so the message has a 
	//maximum of 160 characters

	// Sms message
	$sms_text = "Ένα μήνυμα. Tεστ api.";


	// To send all unicode characters (Greek small characters and characters from other foreign	 
	// language alphabets),
	// uncomment the following line and make comment "$encoding = "UTF8";"
	
	//$unicode = "1";
	
	// * When we send unicode sms have up to 70 characters per sms and a total of up to 4 sms
	//   Caution. You do not allow to have encoding = UTF8 and unicode = 1 at the same time!
	
	$postfields = array(
		'username' => "$username",
		'password' => "$password",
		'from' => "$from",
		'to' => "$to",

		//old approach, but it continues to work ok
		//'coding' => "$encoding",

		//new approach
		'encoding' => "$encoding",

		'text' => "$sms_text"
                // Caution: only unicode or encoding!
                //'unicode' => "$unicode",
	);

	if (!$curld = curl_init()) {
		exit;
	}

	curl_setopt($curld, CURLOPT_POST, true);
	curl_setopt($curld, CURLOPT_POSTFIELDS, $postfields);
	curl_setopt($curld, CURLOPT_URL,$url);
	curl_setopt($curld, CURLOPT_RETURNTRANSFER, true);

	$output = curl_exec($curld);

	curl_close ($curld);

	// Handle some server error response
	if ($output == "originator > 11 chars") {
		echo "Error: '$output'. Ο αποστολέας μπορεί να είναι μέχρι 11 
		λατινικούς χαρακτήρες ή 13 ψηφία.";
		die;
	}
	else if ($output == "originator > 13 digits") {
		echo "Error: '$output'. Ο αποστολέας μπορεί να είναι μέχρι 11 
		λατινικούς χαρακτήρες ή 13 ψηφία.";
		die;
	}
	else if ($output == "wrong parameters") {
		echo "Error: '$output'. Έχετε δώσει λάθος παραμέτρους. Παρακαλώ δείτε το SMS API.";
		die;
	}
	
 	// Handle successful server response
	echo "Result: $output";


import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

public class SmsboxApiExample {

    private static HttpURLConnection con;

    public static void main(String[] args) throws IOException {

        String url = "http://www.smsbox.gr/httpapi/sendsms.php";
        String urlParameters = "username=yourUsername&password=yourPassword&text=Ένα μήνυμα. Tεστ api.&
        from=SMSBOX Test 12345&to=697xxxxxxx&encoding=UTF8";
        byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);

        try {

            URL myurl = new URL(url);
            con = (HttpURLConnection) myurl.openConnection();

            con.setDoOutput(true);
            con.setRequestMethod("POST");

            try (DataOutputStream wr = new DataOutputStream(con.getOutputStream())) {
                wr.write(postData);
            }

            StringBuilder content;

            try (BufferedReader in = new BufferedReader(
                    new InputStreamReader(con.getInputStream()))) {

                String line;
                content = new StringBuilder();

                while ((line = in.readLine()) != null) {
                    content.append(line+"\n");
                }
            }


            if (content.toString().equals("originator > 11 chars")) {
                System.out.println("Ο αποστολέας μπορεί να είναι μέχρι 11 
                λατινικούς χαρακτήρες ή 13 ψηφία.");
            }
            else if (content.toString().equals("originator > 13 digits")) {
                System.out.println("Ο αποστολέας μπορεί να είναι μέχρι 11 λατινικούς 
                χαρακτήρες ή 13 ψηφία.");
            }
            else if (content.toString().equals("wrong parameters")) {
                System.out.println("Έχετε δώσει λάθος παραμέτρους. Παρακαλώ δείτε το SMS API.");
            }

        } finally {

            con.disconnect();
        }
    }
}


var request = require('request');

// Set the headers
var headers = {
    'User-Agent':       'Super Agent/0.0.1',
    'Content-Type':     'application/x-www-form-urlencoded'
}

// Configure the request
var options = {
    url: 'http://www.smsbox.gr/httpapi/sendsms.php',
    method: 'POST',
    headers: headers,
    form: {	'username': 'yourUsername', 
                'password': 'yourPassword',
                'from':'SMSBOX Test',
                'to':'697xxxxxxx',
                'encoding':'UTF8',
                'text':'Ένα μήνυμα. Tεστ api.'
    }
}

// Start the request
request(options, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        // Print out the response body (error)
        console.log(body)
    }
    else {
        console.log("ok: "+body)
    }
})


using System;  
using System.IO;  
using System.Net;  
using System.Text; 

namespace C_
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a request using a URL that can receive a post.   
            WebRequest request = WebRequest.Create ("http://www.smsbox.gr/httpapi/sendsms.php");  
            
            // Set the Method property of the request to POST.  
            request.Method = "POST";  
            
            // Create POST data and convert it to a byte array.  
            string postData = "username=yourUsername&password=yourPassword&
            from=smsbox 1&to=697xxxxxxx&text=test sms with C#&encoding=UTF8";  
            byte[] byteArray = Encoding.UTF8.GetBytes (postData);  
            
            // Set the ContentType property of the WebRequest.  
            request.ContentType = "application/x-www-form-urlencoded";  
            
            // Set the ContentLength property of the WebRequest.  
            request.ContentLength = byteArray.Length;  
            
            // Get the request stream.  
            Stream dataStream = request.GetRequestStream();  
            
            // Write the data to the request stream.  
            dataStream.Write (byteArray, 0, byteArray.Length);  
            
            // Close the Stream object.  
            dataStream.Close ();  
            
            // Get the response.  
            WebResponse response = request.GetResponse();  
            
            // Display the status.  
            Console.WriteLine (((HttpWebResponse)response).StatusDescription);  
            
            // Get the stream containing content returned by the server.  
            dataStream = response.GetResponseStream();  
            
            // Open the stream using a StreamReader for easy access.  
            StreamReader reader = new StreamReader(dataStream);  
            
            // Read the content.  
            string responseFromServer = reader.ReadToEnd();  
            
            // Display the content.  
            Console.WriteLine(responseFromServer);  
            
            // Clean up the streams.  
            reader.Close();  
            dataStream.Close();  
            response.Close();  
        }
    }
}


# For Python v3 ONLY!

from urllib.parse import urlencode
from urllib.request import Request, urlopen

# Set destination URL here
url = 'http://www.smsbox.gr/httpapi/sendsms.php' 

# Set POST fields here
post_fields = {	'username': 'yourUsername',
                'password': 'yourPassword',
                'to': '697xxxxxxx',
                'from': 'SMSBOX Test',
                'text': 'Ένα μήνυμα. Tεστ api.',
                'encoding' : 'UTF8'
}    

request = Request(url, urlencode(post_fields).encode())
json = urlopen(request).read().decode()

print(json)



Η απόκριση του server για μία πετυχημένη αποστολή έχει την παρακάτω μορφή


20 9534538 306941231231 
20 9534539 306971231231
20 9534540 306931231231
41 9534541 094123123123

Δηλαδή κάθε γραμμή αφορά και ένα μήνυμα (sms). Η γραμμή έχει χωρισμένα με κενό τον κωδικό κατάστασης (status), το id και τον αριθμό κινητό του μηνύματος.

Οι κωδικοί κατάστασης (status) είναι οι εξής:
20: το sms στάλθηκε, το μήνυμα έγινε δεκτό από το σύστημά μας
40: το sms δεν στάλθηκε γιατί δεν υπάρχουν διαθέσιμα sms στον λογαριασμό του χρήστη
41: το sms δεν στάλθηκε γιατί ο αριθμός είναι λάθος (όχι 10 ψηφία ή άγνωστο πρόθεμα)
42: το sms δεν στάλθηκε γιατί ο αριθμός κινητού είναι άγνωστη χώρα (unknown prefix)
43: το sms δεν στάλθηκε γιατί προσωρινά ο αριθμός κινητού είναι άγνωστη χώρα (no routing)
44: το sms δεν στάλθηκε γιατί μαρκαρίστηκε ως σπαμ (spam sms)
52: το sms δεν στάλθηκε γιατί ο αριθμός κινητού είναι στην Black List
60: το sms δεν έγινε δεκτό

Μόνο στην περίπτωση που η κατάσταση ενός μηνύματος είναι 20 χρεώνεστε για το μήνυμα αυτό.




Σε περίπτωση που η κλήση SMS API για αποστολή sms δεν έγινε σωστά ο server επιστρέφει ένα από τα παρακάτω σφάλματα σε μορφή κειμένου (string).


Απόκριση σφαλμάτων Server (server error response)


Κείμενο (string) Επεξήγηση
originator > 11 chars Ο αποστολέας έχει μήκος μεγαλύτερο των 11 χαρακτήρων.
originator > 13 digits Ο αποστολέας έχει μήκος μεγαλύτερο των 13 ψηφίων (όταν σας αποστολέα έχετε βάλει αριθμό).
wrong parameters Έχετε περάσει στην ίδια κλήση του SMS API τις παραμέτρους 'encoding' = UTF8 και 'unicode' = 1.
missing username/password Δεν έχετε περάσει στην κλήση του SMS API το username ή το password του λογαριασμού σας.
wrong username/password Έχετε καλέσει το SMS API με λάθος username ή password.
service is down Η υπηρεσία της αποστολής sms μέσω SMS API είναι προσωρινά εκτός λειτουργίας.
wrong or old sesskey To sesskey που περάσατε είναι λάθος ή έχει λήξει.
ERROR Ο λογαριασμός σας έχει απενεργοποιηθεί για κάποιο λόγο, παρακαλούμε επικοινωνήστε μαζί μας.
Wrong not changed Password Το σύστημα σας ζητά να αλλάξετε τον κωδικό του λογαριασμού σας. Μπορείτε να το κάνετε μέσω Web.
not permitted, please contact us Επικοινωνήστε μαζί μας αν σας εμφανίζει αυτό το μήνυμα σφάλματος.
not active account Δεν είναι ενεργοποιημένος ο λογαριασμό σας, επικοινωνήστε μαζί μας.
out_of_credits Δεν έχετε διαθέσιμα sms στο λογαριασμό σας.
missing text Δεν έχετε περάσει το κείμενο του sms στην κλήση του SMS API.
missing originator Δεν έχετε ορίσει τον αποστολέα κατά την κλήση του SMS API.
missing to Δεν έχετε ορίσει παραλήπτες κατά την κλήση του SMS API.
empty text Το κείμενο του sms που περάσατε στην κλήση του SMS API είναι κενό.
sms text > 612 chars Το κείμενο του μηνύματος υπερβαίνει το όριο των 612 χαρακτήρων (4 συνενωμένα μηνύματα).
unicode sms text > 268 chars Το κείμενο του μηνύματος υπερβαίνει το όριο των 268 χαρακτήρων για unicode sms (4 συνενωμένα μηνύματα).
no valid phone Το τηλέφωνο του παραλήπτη δεν είναι έγκυρο.
phones > 100 Ο αριθμός των τηλεφώνων είναι μεγαλύτερος των 100.


Δεν έχετε ακόμα λογαριασμό;

Πατήστε εδώ και πάρτε 20 sms δωρεάν
για να δοκιμάσετε την αποστολή sms με το SMS API μας.

Αναφορες Παραδοσης με το SMS API

URL:

[http:// ή https://] www.smsbox.gr/httpapi/getreports.php

Μέθοδοι:

GET, POST

Παράμετροι


Υποχρεωτικοί παράμετροι SMS API


Παράμετροι Επεξήγηση
'username' Τα username και το password είναι αυτά που παίρνετε κατά τη δημιουργία του λογαριασμού σας.
'password' Τα username και το password είναι αυτά που παίρνετε κατά τη δημιουργία του λογαριασμού σας.
'ids' Η παράμετρος ids είναι τα id των μηνυμάτων (μέχρι 100 χωρισμένα με κόμματα) τα οποία έχει επιστρέψει ο server κατά την αποστολή των μηνυμάτων.

Παραδείγματα ερωτήματος αναφοράς παράδοσης sms με χρήση SMS API


        // Request sending
        $url = "http://www.smsbox.gr/httpapi/getreports.php";

	$username = 'yourUsername';
	$password = 'yourPassword';
	
	$ids = "42841532,42837170";

	
	$postfields = array(
            'username' => "$username",
	    'password' => "$password",
	    'ids' => "$ids"
	);

	if (!$curld = curl_init()) {
            exit;
        }

	curl_setopt($curld, CURLOPT_POST, true);
	curl_setopt($curld, CURLOPT_POSTFIELDS, $postfields);
	curl_setopt($curld, CURLOPT_URL, $url);
	curl_setopt($curld, CURLOPT_RETURNTRANSFER, true);

	$output = curl_exec($curld);

	curl_close($curld);
	
 	// Handle successful server response
	echo "Result: $output";


import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

public class SmsboxApiReportsExample {

    private static HttpURLConnection con;

    public static void main(String[] args) throws IOException {

        String url = "http://www.smsbox.gr/httpapi/getreports.php";
        String urlParameters = "username=yourUsername&password=yourPassword&ids=72228718,72214270";
        byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);

        try {

            URL myurl = new URL(url);
            con = (HttpURLConnection) myurl.openConnection();

            con.setDoOutput(true);
            con.setRequestMethod("POST");

            try (DataOutputStream wr = new DataOutputStream(con.getOutputStream())) {
                wr.write(postData);
            }

            StringBuilder content;

            try (BufferedReader in = new BufferedReader(
                    new InputStreamReader(con.getInputStream()))) {

                String line;
                content = new StringBuilder();

                while ((line = in.readLine()) != null) {
                    content.append(line+"\n");
                }
            }

            // Print server response
            System.out.print(content.toString());

            // Handle some server error response
            if (content.toString().equals("missing username/password")) {
                System.out.println("Error: Δεν έχετε δώσει όνομα χρήση ή κωδικό στην κλήση του SMS API.");
            }
            else if (content.toString().equals("wrong username/password")) {
                System.out.println("Error: Το όνομα χρήστη ή ο κωδικός δεν είναι σωστός.");
            }


        } finally {

            con.disconnect();
        }
    }
}


var request = require('request');

// Set the headers
var headers = {
    'User-Agent':   'Super Agent/0.0.1',
    'Content-Type': 'application/x-www-form-urlencoded'
}

// Configure the request
var options = {
    url: 'http://www.smsbox.gr/httpapi/getreports.php',
    method: 'POST',
    headers: headers,
    form: { 'username': 'yourUsername', 
            'password': 'yourPassword',
            'ids':'72228718,72214270'
	}
}

// Start the request
request(options, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        // Print out the response body
        console.log(body)
    }
    else {
        console.log("ok: "+body)
    }
})


using System;  
using System.IO;  
using System.Net;  
using System.Text; 

namespace C_
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a request using a URL that can receive a post.   
            WebRequest request = WebRequest.Create ("http://www.smsbox.gr/httpapi/getreports.php");  
            
            // Set the Method property of the request to POST.  
            request.Method = "POST";  
            
            // Create POST data and convert it to a byte array.  
            string postData = "username=yourUsername&password=yourPassword&ids=72228718,72214270";  
            byte[] byteArray = Encoding.UTF8.GetBytes (postData);  
            
            // Set the ContentType property of the WebRequest.  
            request.ContentType = "application/x-www-form-urlencoded";  
            
            // Set the ContentLength property of the WebRequest.  
            request.ContentLength = byteArray.Length;  
            
            // Get the request stream.  
            Stream dataStream = request.GetRequestStream ();  
            
            // Write the data to the request stream.  
            dataStream.Write (byteArray, 0, byteArray.Length);  
            
            // Close the Stream object.  
            dataStream.Close ();  
            
            // Get the response.  
            WebResponse response = request.GetResponse ();  
            
            // Display the status.  
            Console.WriteLine (((HttpWebResponse)response).StatusDescription);  
            
            // Get the stream containing content returned by the server.  
            dataStream = response.GetResponseStream ();  
            
            // Open the stream using a StreamReader for easy access.  
            StreamReader reader = new StreamReader (dataStream);  
            
            // Read the content.  
            string responseFromServer = reader.ReadToEnd ();  
            
            // Display the content.  
            Console.WriteLine (responseFromServer);  
            
            // Clean up the streams.  
            reader.Close ();  
            dataStream.Close ();  
            response.Close ();  
        }
    }
}


# In Python v3

from urllib.parse import urlencode
from urllib.request import Request, urlopen

# Set destination URL here
url = 'http://www.smsbox.gr/httpapi/getreports.php' 

# Set POST fields here
post_fields = { 'username': 'yourUsername',
                'password': 'yourPassword',
                'ids': '72228718,72214270'
              }     

request = Request(url, urlencode(post_fields).encode())
json = urlopen(request).read().decode()

print(json)



Η απόκριση του server για μία πετυχημένη κλήση αναφορών παράδοσης SMS API έχει την παρακάτω μορφή


42837170 1 306947576421 
42841532 1 306947992731 

Δηλαδή σε κάθε γραμμή υπάρχει το id του μηνύματος, το status και ο αριθμός του παραλήπτη του μηνύματος.

Οι αναφορές θα αποθηκεύονται στον δικό μας server για τουλάχιστον ένα χρόνο, από την ημερομηνία αποστολής.



Ένας καλύτερος τρόπος για να λαμβάνετε τις αναφορές παράδοσης των αποστολών sms μέσω SMS API είναι αντί να ρωτάτε τον server μας να ειδοποιεί αυτός ασύγχρονα τον δικό σας.

"Η υπηρεσία αυτή ονομάζεται Call Back URL και προσφέρεται χωρίς επιπλέον χρέωση."

Call Back URL

Η smsbox.gr έχει φτιάξει σύστημα (call back url) για να μπορείτε να ειδοποιήστε ασύγχρονα για την κατάσταση των απεσταλμένων μηνυμάτων σας, όταν αυτή αλλάζει. Για να γίνει αυτό θα πρέπει να μας δώσετε μία διεύθυνση (url) όπου στέλνουμε κάθε φορά που αλλάζει η κατάσταση ενός δικού σας μηνύματος το id του μηνύματος και την κατάστασή του. Το url σας μπορεί να είναι της μορφής :

 "http://yourserver.gr/getsmsstatus.php" 

Για παράδειγμα για το πρώτο μήνυμα, όταν παραδοθεί στο κινητό του παραλήπτη θα καλέσουμε ένα url της μορφής:

"http://yourserver.gr/getsmsstatus.php?id=9534538&status=1"

Το 9534538 είναι το id που σας επέστρεψε ο server όταν στείλατε το μήνυμα και το status 1 σημαίνει ότι το μήνυμα παραδόθηκε στο κινητό του παραλήπτη.

Οι καταστάσεις (status) που σας δίνουμε με τις αναφορές παράδοσης είναι οι εξής:

1: το μήνυμα παραδόθηκε στο κινητό του παραλήπτη (Πετυχημένη Παράδοση SMS)
2: το μήνυμα δεν παραδόθηκε στο κινητό του παραλήπτη
20: το sms στάλθηκε, το μήνυμα έγινε δεκτό από το σύστημά μας
40: το sms δεν στάλθηκε γιατί δεν υπάρχουν διαθέσιμα sms στον λογαριασμό του χρήστη
41: το sms δεν στάλθηκε γιατί ο αριθμός είναι λάθος (όχι 10 ψηφία ή άγνωστο πρόθεμα)
42: το sms δεν στάλθηκε γιατί ο αριθμός κινητού είναι άγνωστη χώρα (unknown prefix)
43: το sms δεν στάλθηκε γιατί προσωρινά ο αριθμός κινητού είναι άγνωστη χώρα (no routing)
44: το sms δεν στάλθηκε γιατί μαρκαρίστηκε ως σπαμ (spam sms)
52: το sms δεν στάλθηκε γιατί ο αριθμός κινητού είναι στην Black List
60: το sms δεν έγινε δεκτό


Δεν έχετε ακόμα λογαριασμό;

Πατήστε εδώ και πάρτε 20 sms δωρεάν
για να δοκιμάσετε την αποστολή sms με το SMS API μας.

Προγραμματισμος Αποστολης μεσω SMS API

Μπορείτε να προγραμματίσετε τα μηνύματα να μην σταλούν τη στιγμή που καλείτε το http api, αλλά σε μια μελλοντική χρονική στιγμή.

Για να γίνει αυτό καλείτε το api όπως στην αποστολή sms απλά βάζετε μια επιπλέον παράμετρο, την datetosend. Η παράμετρος αυτή θα έχει σαν τιμή την ημερομηνία και την ώρα που θέλετε τελικά να σταλούν τα μηνύματα. Η ημερομηνία/ώρα πρέπει να είναι στο μέλλον και στην παρακάτω μορφή: datetosend=2011-10-29-11:51. Δηλαδή, έτος-μήνας-ημέρα-ώρα:λεπτά.

Αν η ημερομηνία που δώσετε έχει περάσει, τα μηνύματα δεν στέλνονται και ο server σας επιστρέφει : "past date"

Παράδειγμα URL που καλείτε για προγραμματισμένη αποστολής sms με χρήση SMS API:


"http://www.smsbox.gr/httpapi/sendsms.php?
username=yourUsername&password=yourPassword&text=my second sms&from=mysite&to=6971231231,306991231231,6931231231&datetosend=2013-11-26-10:26"

Η απάντηση του server είναι της μορφής:


Sessionid 231055
10 49858279  306971231231
10 49858280  306991231231
10 49858281  306931231231
10 49858282  306941231231 

Δηλαδή στην πρώτη γραμμή υπάρχει το Sessionid που είναι ένας μοναδικός αριθμός, αφορά όλα τα μηνύματα της συγκεκριμένης κλήσης (1-100) και υπάρχει αν χρειαστεί ο χρήστης να ακυρώσει την προγραμματισμένη αυτή αποστολή πριν βέβαια σταλεί. Μετά σε κάθε γραμμή υπάρχει ο αριθμός 10, το id του μηνύματος και ο αριθμός του παραλήπτη. Ο αριθμός 10 σημαίνει ότι έχει γίνει σωστά ο προγραμματισμός του μηνύματος.

Για να ακυρώσετε κάποια προγραμματισμένα μηνύματα, χωρίς βέβαια να χρεωθείτε για αυτά, πρέπει να έχετε αποθηκεύσει το sessionid που αναφέρεται παραπάνω.


Ακύρωση προγραμματισμένων sms μέσω SMS API:


URL:

[http:// ή https://] www.smsbox.gr/httpapi/cancelsms.php

Μέθοδοι:

GET, POST

Παράμετροι


Υποχρεωτικοί παράμετροι SMS API

Παράμετροι Επεξήγηση
'username' Τα username και το password είναι αυτά που παίρνετε κατά τη δημιουργία του λογαριασμού σας.
'password' Τα username και το password είναι αυτά που παίρνετε κατά τη δημιουργία του λογαριασμού σας.
'sessionid' Το sessionid που σας έχει επιστρέψει ο server όταν κάνατε την κλήση SMS API για προγραμματισμένη αποστολή sms.

Παραδείγματα URL που καλείτε για την ακύρωση της προγραμματισμένης αποστολής sms μέσω SMS API:


"http://www.smsbox.gr/httpapi/cancelsms.php?username=yourUsername&password=yourPassword&sessionid=231055"

Ο server επιστρέφει 1 αν γίνει η ακύρωση και 0 αν δεν γίνει (πχ λάθος sessionid ή ήδη ακυρωμένα sms).

Επίσης για να δείτε τα προγραμματισμένα μηνύματα μπορείτε να κάνετε login στον λογαριασμό σας, από το web στο smsbox.gr και να πατήσετε στο “προγραμματισμένα sms”. Από εκεί μπορείτε επίσης, πατώντας στο Χ , να ακυρώσετε τα προγραμματισμένα μηνύματα.



Δεν έχετε ακόμα λογαριασμό;

Πατήστε εδώ και πάρτε 20 sms δωρεάν
για να δοκιμάσετε την αποστολή sms με το SMS API μας.

Ερωτηση Υπολοιπου Λογαριασμου μεσω SMS API

Μπορείτε να δείτε κάθε στιγμή το υπόλοιπο στον λογαριασμό σας πολύ εύκολα μέσω του SMS API


URL:

[http:// ή https://] www.smsbox.gr/httpapi/getbalance.php

Μέθοδοι:

GET, POST

Παράμετροι


Υποχρεωτικοί παράμετροι SMS API

Παράμετροι Επεξήγηση
'username' Τα username και το password είναι αυτά που παίρνετε κατά τη δημιουργία του λογαριασμού σας.
'password' Τα username και το password είναι αυτά που παίρνετε κατά τη δημιουργία του λογαριασμού σας.

Παράδειγμα URL για να λάβετε το υπόλοιπο σε sms του λογαριασμού σας:


"http://www.smsbox.gr/httpapi/getbalance.php?username=yourUsername&password=yourPassword"

O server θα σας επιστρέψει έναν αριθμό που είναι το υπόλοιπο του λογαριασμού σας σε sms.



Δεν έχετε ακόμα λογαριασμό;

Πατήστε εδώ και πάρτε 20 sms δωρεάν
για να δοκιμάσετε την αποστολή sms με το SMS API μας.

Κλήσεις SMS API με sesskey

Για μεγαλύτερη ασφάλεια στις αποστολές sms με το SMS API

Μπορείτε αν θέλετε, να μην βάζετε σε κάθε κλήση της sendsms.php τις παραμέτρους username και password.
Για να γίνει αυτό θα πρέπει να καλέσετε πριν την auth.php με παραμέτρους το username και password:

URL:

[http:// ή https://] www.smsbox.gr/httpapi/auth.php

Μέθοδοι:

GET, POST

Παράμετροι


Υποχρεωτικοί παράμετροι SMS API

Παράμετροι Επεξήγηση
'username' Τα username και το password είναι αυτά που παίρνετε κατά τη δημιουργία του λογαριασμού σας.
'password' Τα username και το password είναι αυτά που παίρνετε κατά τη δημιουργία του λογαριασμού σας.

Παραδείγματα URL κλήσης της auth πριν την αποστολή sms με χρήση SMS API:


"https://www.smsbox.gr/httpapi/auth.php?username=yourUsername&password=yourPassword"

O server θα επιστρέψει ένα κλειδί (sesskey) στην μορφή: ΟΚ ab23523c90349d2340v0a09

Το ab23523c90349d2340v0a09 είναι το sesskey. Αυτό το κλειδί είναι ενεργό για 2 ώρες.

Στην συνέχεια μπορείτε να στείλετε sms απλά χρησιμοποιώντας το sesskey αντί για username, password στην sendsms.php,

Παράδειγμα URL αποστολής sms μέσω SMS API με χρήση του sesskey:


"http://www.smsbox.gr/httpapi/sendsms.php?sesskey=ab23523c90349d2340v0a09&text=x&from=x&to=x"

Το ίδιο μπορεί να γίνει και με τις getbalance.php και getreports.php. Κάθε φορά που καλείται μια από αυτές ανανεώνεται ο χρόνος των 2 ωρών για το κλειδί.



Δεν έχετε ακόμα λογαριασμό;

Πατήστε εδώ και πάρτε 20 sms δωρεάν
για να δοκιμάσετε την αποστολή sms με το SMS API μας.