Η .net βιβλιοθήκη επιτρέπει στους προγραμματιστές που γράφουν σε C#, VB.net και άλλες γλώσσες που χρησιμοποιούν .net DLLs, να στέλνουν μηνύματα πολύ εύκολα χρησιμοποιώντας την.
Μπορείτε να χρησιμοποιήσετε τα παρεχόμενα DLLs μέσα από ASP.net, C#, VB.NET applications όπως και C# scripts (http://www.csscript.net/), με τον συνήθη τρόπο που κάνετε include οποιοδήποτε DLL (https://msdn.microsoft.com/en-us/library/wkze6zky.aspx).
Θα πρέπει να κάνετε include και τα 2 DLL files (Newtonsoft.Json.dll & Terracom.Liveall.ConnectorLib.dll)
Το target framework για το συγκεκριμένο library είναι το .net 4.6.1 και μπορείτε να το κατεβάσετε από το παρακάτω link.
Η κλάση [Terracom.Liveall.ConnectorLib.Connector] καλεί ένα web-service για τη μαζική αποστολή, αφού πρώτα μετατρέψει τα δεδομένα σε μορφή JSON.
Το web-service αυτό είναι το ίδιο που περιγράφεται κι εδώ.
Για να τη χρησιμοποιήσουμε ενεργούμε ως εξής:
using Terracom.Liveall.ConnectorLib; Connector sms_connector = new Connector(); sms_connector.Init("MY_VERY_SECRET_TOKEN", "mySenderID"); Models.OP_RESULT res = sms_connector.SendSms( new Models.HttpApiJSMSParts[] { new Models.HttpApiJSMSParts { destination = "306912345678", message = "Test message - English. Δοκιμαστικό μήνυμα (Ελληνικά)" } }, 1); if (res.ErrorCode != SMS_SERVICE_ERROR_CODES.NO_ERROR) Console.WriteLine("Problem sending SMS. Error message: {0}", res.ErrorMessage); else Console.WriteLine("SMS sent sucessfully! SMSId for 1st sent message: {0}", res.SubmitInfo.FirstOrDefault().smsid);
Επίσης, για VB.NET μπορείτε να δείτε το παρακάτω απλό παράδειγμα:
Imports Terracom.Liveall.ConnectorLib Module Module1 Sub Main() Dim sms_connector As New Connector() Dim res As Models.OP_RESULT Dim submit_info(1) As Models.HttpApiJSMSParts Dim si As New Models.HttpApiJSMSParts si.destination = "306912345678" si.message = "Test message - English. Δοκιμαστικό μήνυμα (Ελληνικά)" submit_info(0) = si sms_connector.Init("MY_VERY_SECRET_TOKEN", "mySenderID") res = sms_connector.SendSms(submit_info, 0) If res.ErrorCode <> SMS_SERVICE_ERROR_CODES.NO_ERROR Then Console.WriteLine("Problem sending SMS. Error message: {0}", res.ErrorMessage) Else Console.WriteLine("SMS sent sucessfully! SMSId for 1st sent message: {0}", res.SubmitInfo.FirstOrDefault().smsid) End If End Sub End Module
Παρακάτω περιγράφονται οι public functions της library:
public Models.OP_RESULT Init(string api_token, string sender_id) /*όπου: OP_RESULT είναι η κλάση με το αποτέλεσμα της κλήσης των συναρτήσεων της Connector class api_token είναι το secret api token (η ταυτοποίηση του account σας) που μπορείτε <a href="https://www.liveall.eu/user">να το βρείτε εδώ</a> sender_id είναι ο αποστολέας που θέλετε να φαίνεται στο κινητό του παραλήπτη */ public Models.OP_RESULT SendSms(Models.HttpApiJSMSParts[] messages, int price_category = 0, DateTime? send_on = null) /* OP_RESULT είναι η κλάση με το αποτέλεσμα της κλήσης των συναρτήσεων της Connector class messages είναι ένας πίνακας με όλα τα ζευγάρια αριθμών και μηνυμάτων (περιγράφεται παρακάτω) που θέλουμε να στείλουμε. price_category (προεραιτική) είναι η κατηγορία τιμών που θέλουμε να χρησιμοποιήσουμε. 0 για normal & 1 για low cost send_on (προεραιτική) είναι η ώρα που θέλουμε να αποσταλεί. Η μεταβλητή αυτή είναι τύπου DateTime nullable */ public async Task<Models.OP_RESULT> SendSmsAsync(Models.HttpApiJSMSParts[] messages, int price_category = 0, DateTime? send_on = null) /* OP_RESULT είναι η κλάση με το αποτέλεσμα της κλήσης των συναρτήσεων της Connector class. Η async συνάρτηση μπορεί να κληθεί με τoν await operator messages είναι ένας πίνακας με όλα τα ζευγάρια αριθμών και μηνυμάτων (περιγράφεται παρακάτω) που θέλουμε να στείλουμε. price_category (προεραιτική) είναι η κατηγορία τιμών που θέλουμε να χρησιμοποιήσουμε. 0 για normal & 1 για low cost send_on (προεραιτική) είναι η ώρα που θέλουμε να αποσταλεί. Η μεταβλητή αυτή είναι τύπου DateTime nullable */
Τέλος, παρακάτω φαίνονται οι διάφορες βοηθητικές κλάσεις που χρησιμοποιούνται από την Connector class:
//--------------------------------------------------------------------------- public class OP_RESULT { public OP_RESULT() { ErrorCode = SMS_SERVICE_ERROR_CODES.NO_ERROR; ErrorMessage = null; SubmitInfo = null; } public SMS_SERVICE_ERROR_CODES ErrorCode { get; set; } public string ErrorMessage { get; set; } public SubmissionInfo[] SubmitInfo { get; set; } } //--------------------------------------------------------------------------- public class SubmissionInfo { public string destination { get; set; } public uint smsid { get; set; } } //--------------------------------------------------------------------------- public enum SMS_SERVICE_ERROR_CODES { NO_ERROR = 0, EMPTY_SENDERID = 1, INVALID_SENDERID = 2, UNAUTHORIZED_NUM_SENDER_ID = 3, ALPHA_SENDERID_TOO_LONG = 4, NUM_SENDERID_TOO_LONG = 5, INTERR_NO_SMS_TYPE_PROV = 6, INTERR_NO_SMS_TEXT = 7, INTERNAL_ERROR = 8, ILLEGAL_SENDERID = 9, SMS_TEXT_EMPTY = 10, SMS_TEXT_LEN_TOO_LONG = 11, NO_DESTINATION_NUMBERS_PROVIDED = 12, INVALID_DESTINATION_NUMBER = 13, INVALID_GREEK_DEST_NUM = 14, INVALID_CYPR_DEST_NUM = 15, INVALID_ITALIAN_DEST_NUM = 16, NOTFOUND_BUFFERED_BATCH_HEAD = 17, INSUFFICIENT_USER_BALANCE = 18, INTERR_COULDNT_FOUND_BUFFBATCH = 19, INVALID_BATCHID_GIVEN = 20, ERROR_CREATING_SMSLOGFILE = 21, ERROR_WHEN_TRYING_TO_BLACKLIST = 22, ERROR_ON_GETTING_CONTACTS = 23, ERROR_NO_CONTACT_TO_DELETE = 24, RECORD_ALREADY_EXISTS = 25, RECORD_DOES_NOT_EXISTS = 26, RECORD_CHANGE_FROM_DIFF_SESSION = 27, PBOOK_CONTACT_CELL_EMPTY = 28, PBOOK_CONTACT_NAME_EMPTY = 29, PBOOK_INVLD_CELL = 30, PBOOKGRP_NO_GROUP_PRVD_TO_DEL = 31, ACCSETT_EMPTY_SETTINGS = 32, INVALID_IMPORT_FILE = 33, INSUFFICIENT_INVLD_PARAMETER_DATA = 34, ERROR_IMPORTING_CONTACTS = 35, INS_UPD_DUPLICATE_CELL_FOUND = 36, NOT_ENOUGH_CREDITS_FOR_HLR_QUERY = 37, ERROR_WHEN_TRYING_SUBMIT_USERHLR = 38, API_TOKEN_NOT_PROVIDED = 39, API_TOKEN_MISMATCH = 40, INVALID_SCHEDULED_SENDOUT_DATE = 41, SMSIDS_PARAMETER_INVALID = 42, NO_SUBMITTED_SMS_FOUND = 43, INVALID_API_TOKEN = 44, ERROR_HTTP_RESPONSE = 1001, ERROR_DESERIALIZING_JSON = 1002, ERROR_MAKING_WEB_REQUEST = 1003, } //---------------------------------------------------------------------------
public class HttpApiJSMSParts { public string destination { get; set; } public string message { get; set; } }