نسخة رقم 3.2.0

الترحيب


مرحبا بكم من جديد في مزود خدمة الرسائل النصية TURKEY SMS هذا القسم يضم كافة التفاصيل المتعلقة بالربط المباشر لخدمة الرسائل النصية ضمن حسابكم لتتمكنوا من الإرسال مباشرة عبر تطبيقاتكم او أي نظام برمجي لديكم نوفر لكم كافة الحلول البرمجية لتتمكنوا من القيام بعملية الربط بشكل سهل وسريع


التعريف بالخدمة


الربط البرمجي من خلال الـ API خيار يمكنك من إنشاء عملية ربط برمجي بين حسابك في خدمة الرسائل مع أي تطبيق خارجي، مثل موقع إنترنت - تطبيق موبايل - برنامج محاسبة - برنامج إدارة العملاء .. الخ نظام الرسائل النصية يدعم جميع لغات البرمجة لإستكمال عملية الربط البرمجي متل PHP - JAVA - C++ - ASP يمكنك ربط حسابك ببساطة من خلال التوجه لحسابك بعد تسجيل الدخول لخيار الربط المباشر API، وسيقوم النظام بإرشادك لطريقة الربط بسهولة
- هل هناك تكلفة إضافية لطلب ربط مباشر ؟
بالطبع لن يكون هناك تكلفة إضتفية لعملية الربط البرمجي، كما ان فريق الدعم الفني سيكون متوفر لمساعدتكم في إعداد الربط المباشر وتجهيزه بشكل كامل لكم

المتطلبات والشروط


حتى تتمكنوا من إستخدام خدمة الربط المباشر يجب ان تتوفر لديكم بعض الشروط ضمن حسابكم ليكون الربط مع خدمة الرسائل صحيح وبدون أي مشكلة
وهذه الشروط هي

الحساب فعال بحيث يكون حسابكم فعال في خدمة الرسائل ولوحة التحكم الخاصة بكم مفعلة بشكل كامل
الرصيد يجب ان يتوفر في حسابكم رصيد رسائل حتى تتمكنوا من إستخدام الربط المباشر
عنوان الإرسال يجب ان يتوفر في حسابكم عنوان إرسال Sender ID مفعل بشكل كامل

بدء الإستخدام


من أجل البدء بإستخدام الربط المباشر لمزود خدمة الرسائل النصية تسجيل الدخول لحسابكم
والتوجه من القائمة الرئيسية لقسم حسابي - الربط المباشر api


ستشاهدون بيانات الحساب الخاصة بكم من أجل البدء بإستخدام الربط المباشر مع حسابكم

إرسال رسالة من خلال الـ api


الخطوات التي يجب عليكم إتباعها حتى تتمكنوا من البدء بإستخدام خدمة الربط المباشر مع مزود خدمة الرسائل النصية

رابط خدمة SMS API من أجل عملية الربط المباشر هو

https://www.turkeysms.com.tr/api/v3/gonder/add-content

المتغيرات المرسلة من خلال الرابط هي

							
$title    = '';
$api_key  = '';
$text	  = '';
$sentto	  = '';
$report   = '';
$sms_lang = '';
$response_type = '';
							
							

شرح المتغيرات المرسلة من خلال الرابط

title$ varchar يكتب هنا عنوان الإرسال الخاص بكم كما موجود في حسابكم مع مراعاة حالة الأحرف
api_key$ varchar مفتاح الإرسال الخاص بكم الموجود في حسابكم يوضع هنا
text$ text نص الرسالة المراد إرسال
sentto$ int الرقم المراد إرسال الرسالة له .. يجب ان لايتضمن احرف او رموز
report$ int خيار لعرض تفاصيل عملية الإرسال في حال كانت القيمة 1 يظهر التقرير او 0 للإلغاء
sms_lang$ int خيار لغة محتوى الرسالة المرسل حيث ان رقم 2 هو للغة العربية ورقم 0 للغة الإنكليزية
response_type$ int خيار عرض الرد من قبل سيرفر الإرسال بلغة برمجية معينة

بعد إجراء عملية الإرسال سيتم ارسال رد من السيرفر على العملية في حال كان خيار ظهور التقرير مفعل يمكنكم متابعة أكواد الإرسال من خلال شرح أكواد الإرسال

مثال على الرد المرسل من السيرفر بعد عملية الإرسال


Array
(
    [result] => true
    [sms_id] => 1000007721
    [number_of_sms] => 1
    [result_code] => TS-1024
    [result_message] => The message was sent successfully
    [sms_lang] => Arabic
    [country] => Turkey-TR
)
							

شرح المتغيرات المرسلة من السيرفر

result نتيجة العملية في حال النجاح يظهر true وفي حال فشل الإرسال يظهر false
sms_id رقم العملية المسجل ID الذي يمكن من خلاله متابعة حالة الرسالة
number_of_sms عدد الرسائل او الرصيد الذي سيخصم من حسابكم بعد إرسال الرسالة
result_code كود العملية .. يمكنكم متابعة قسم أكواد الإرسال لمشاهدة كامل التفاصيل
result_message رسالة العملية المرسلة .. تظهر لكم رسالة بالعملية في حال النجاح او الفشل
sms_lang يظهر محتوى الرسالة التي ارسالت بأي لغة كانت
country اسم الدولة التي تم ارسال الرسالة لها

إرسال رسالة من خلال الـ api - GET


الخطوات التي يجب عليكم إتباعها حتى تتمكنوا من البدء بإستخدام خدمة الربط المباشر مع مزود خدمة الرسائل النصية

المتغيرات المرسلة من خلال الرابط هي - المتغيرات والخيارات كما ذكرت في الأعلى

							
https://turkeysms.com.tr/api/v3/get/get.php?api_key=API_KEY_HERE&mobile=MOBILE_HERE&title=TITLE_HERE&text=SMS_TEXT_HERE&report=1&lang=2&response_type=json
							
							

شرح أكواد الرد


عند القيام بعملية الإرسال من خلال الربط المباشر api سيرسل لكم السيرفر رد بالعملية عبارة عن كود
هذه الاكواد تشرح لكم نتيجة العملية التي قمتم بها هل تم الإرسال بنجاح ام لم يتم وفي حال لم يتم ماهو السبب

شرح ومعاني أكواد الإرسال

TS-1024 تم إرسال الرسالة بنجاح
TS-1025 رقم الموبايل لم يتم كتابته .. رقم الموبايل فارغ
TS-1026 نص الرسالة فارغ .. لم تتم كتابة نص للرسالة
TS-1027 لايوجد في حسابكم رصيد كافي من أجل عملية الإرسال
TS-1028 عنوان الإرسال Sender ID غير فعال في حسابكم
TS-1029 عنوان الإرسال غير موجود .. يرجى التأكد من كتابة العنوان بشكل صحيح
TS-1030 حسابكم غير فعال في مزود خدمة الرسائل النصية
TS-1031 مفتاح الإتصال api-key غير صحيح
TS-1032 الرقم المرسل له الرسالة دولي خارج تركيا وحسابكم غير مفعل للإرسال الدولي
TS-1033 البيانات المرسلة من خلال الرابط غير صحيحة
TS-1034 رقم الموبايل المرسل له الرسالة غير صحيح

الإستعلام عن حالة الرسالة المرسلة SMS Status GET


يمكن الاستعلام عن حالة الرسالة المرسلة من خلال الرابط المباشر ومعرفة تفاصيل الرسالة والرصيد وتأكيد الوصول

							
https://turkeysms.com.tr/api/v3/sms-durumu/sms_durumu.php?api_key=API_KEY_HERE&sms_id=SMS_ID_HERE&response_type=php							
							
							

المتغيرات المرسلة من خلال الرابط هي

							
$api_key  = '';
$sms_id	  = '';
$response_type = '';
							
							

شرح المتغيرات المرسلة من خلال الرابط

api_key$ varchar مفتاح الإرسال الخاص بكم الموجود في حسابكم يوضع هنا
sms_id$ int المعرف الخاص بالرسالة
response_type$ int خيار عرض الرد من قبل سيرفر الإرسال بلغة برمجية معينة

بعد إجراء عملية الإرسال سيتم ارسال رد من السيرفر على العملية

مثال على الرد المرسل من السيرفر


Array
(
    [result] => true
    [sender_id] => SenderID
    [date_of_sending] => 2021-01-01
    [time_of_sending] => 13:10:00
    [sms_status] => Number received the message
    [sms_status_code] => TS-1024
    [sms_balance] => 1 SMS
    [operator] => Turkcell
)
							

شرح المتغيرات المرسلة من السيرفر

result نتيجة العملية في حال النجاح يظهر true وفي حال فشل الإرسال يظهر false
sender_id معرف الارسال او عنوان الارسال الذي تم ارسال الرسالة من خلاله
date_of_sending تاريخ إرسال الرسالة
time_of_sending وقت إرسال الرسالة
sms_status رسالة بحالة الرسالة - تم التسليم - لم يتم التسليم - الرقم خارج التغطية
sms_status_code كود عملية الحالة
sms_balance الرصيد المخصوم من الحساب نتيجة عملية الارسال
operator اسم شركة الإتصال التابع لها الرقم

الإرسال الدولي


يقصد بمصطلح ( الرسائل الدولية ) الرسائل التي يتم إرسالها خارج حدود الجمهورية التركية تشمل كل الأرقام التي ( لاتبدأ ) بالرمز الدولي ( 90+ - 0090 )
خدمة Turkey SMS تمكنك من إرسال رسالة نصية من خلال حسابك إلى أي دولة في العالم لكن يتوجب عليك أن تقوم بشحن رصيدك بحساب دولي حتى تتمكن من الإرسال لأي دولة في العالم تختلف سعر الرسالة بين دولة وآخرى كما يختلف زمن وصول الرسالة الدولية من دولة لآخرى أيضا. لتتمكن من الإرسال بشكل دولي يجب ان تقوم بالتواصل مع مركز الدعم الفني بخدمة الرسائل النصية Turkey SMS ليتم تفعيل حسابك للتتمكن من الإرسال الدولي.
كيف يتم حساب الرسائل الدولية؟
الرصيد الدولي فيتم استخدامه خارج الجمهورية التركية، ويكون طلبه من خلال شحن رصيد مالي _قيمة مالية_ وليس عدد رسائل، وذلك لأن القيمة المالية لإرسال الرسائل تحتلف من دولة لأخرى ويكون سعر الرسالة ثابت مهما بلغ العدد.

كيف أرسل رسالة دولية من خلال الـ api

نفس طريقة إرسال الرسالة المحلية داخل تركيا .. بنفس الرابط وكامل الخيارات
لكن يجب عليكم ان تقوموا بشحن حسابكم برصيد دولي
ويجب كتابة الرقم المرسل له الرسالة بالرمز الدولي

لغات البرمجة المدعومة


نظام الرسائل النصية يدعم جميع لغات البرمجة لإستكمال عملية الربط البرمجي متل

PHP Java JavaScript NodeJS Python CSharp C(LibCURL) Go ObjectiveC Ruby Swift

PHP

function sendRequest($site, $data)
{
    $json = json_encode($data);
    $ch = curl_init($site);
    $header = array('Content-Type: application/json');
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}
$api_key  = '';
$title    = '';
$text	  = '';
$sentto	  = '';

$body = array("api_key" => $api_key, "title"=>$title, "text"=>$text,"sentto"=>$sentto);
$result = sendRequest('https://www.turkeysms.com.tr/api/v3/gonder/add-content', $body);
//http://www.lalit.org/lab/convert-xml-to-array-in-php-xml2array/

JAVA

Unirest.setTimeouts(0, 0);
HttpResponse response = Unirest.post("https://www.turkeysms.com.tr/api/v3/gonder/add-content")
.header("Content-Type", "application/json")
.body("{\"api_key\":\"API_KEY_HERE\",\"title\":\"SMS_TITLE_HERE\",\"text\":\"TEXT_SMS\",\"sentto\":\"90500000000\"}")
.asString();

JavaScript

var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({"api_key":"API_KEY_HERE","title":"SMS_TITLE_HERE","text":"TEXT_SMS","sentto":"90500000000"});

var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};

fetch("https://www.turkeysms.com.tr/api/v3/gonder/add-content", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));

Python

import requests

url = "https://www.turkeysms.com.tr/api/v3/gonder/add-content"

payload = "{\"api_key\":\"API_KEY_HERE\",\"title\":\"SMS_TITLE_HERE\",\"text\":\"TEXT_SMS\",\"sentto\":\"90500000000\"}"
headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))

Ruby

require "uri"
require "net/http"

url = URI("https://www.turkeysms.com.tr/api/v3/gonder/add-content")

https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request.body = "{\"api_key\":\"API_KEY_HERE\",\"title\":\"SMS_TITLE_HERE\",\"text\":\"TEXT_SMS\",\"sentto\":\"90500000000\"}"

response = https.request(request)
puts response.read_body

CSharp

var client = new RestClient("https://www.turkeysms.com.tr/api/v3/gonder/add-content");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\"api_key\":\"API_KEY_HERE\",\"title\":\"SMS_TITLE_HERE\",\"text\":\"TEXT_SMS\",\"sentto\":\"90500000000\"}",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

C(LibCURL)

CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
  curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
  curl_easy_setopt(curl, CURLOPT_URL, "https://www.turkeysms.com.tr/api/v3/gonder/add-content");
  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
  curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
  struct curl_slist *headers = NULL;
  headers = curl_slist_append(headers, "Content-Type: application/json");
  curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
  const char *data = "{\"api_key\":\"API_KEY_HERE\",\"title\":\"SMS_TITLE_HERE\",\"text\":\"TEXT_SMS\",\"sentto\":\"90500000000\"}";
  curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
  res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);


NodeJS

var unirest = require('unirest');
var req = unirest('POST', 'https://www.turkeysms.com.tr/api/v3/gonder/add-content')
  .headers({
    'Content-Type': 'application/json'
  })
  .send(JSON.stringify({"api_key":"API_KEY_HERE","title":"SMS_TITLE_HERE","text":"TEXT_SMS","sentto":"90500000000"}))
  .end(function (res) { 
    if (res.error) throw new Error(res.error); 
    console.log(res.raw_body);
  });

ObjectiveC


#import  Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://www.turkeysms.com.tr/api/v3/gonder/add-content"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"Content-Type": @"application/json"
};

[request setAllHTTPHeaderFields:headers];
NSData *postData = [[NSData alloc] initWithData:[@"{\"api_key\":\"API_KEY_HERE\",\"title\":\"SMS_TITLE_HERE\",\"text\":\"TEXT_SMS\",\"sentto\":\"90500000000\"}" dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postData];

[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
  if (error) {
    NSLog(@"%@", error);
  } else {
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
    NSError *parseError = nil;
    NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
    NSLog(@"%@",responseDictionary);
    dispatch_semaphore_signal(sema);
  }
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);

Go


package main
import (
  "fmt"
  "strings"
  "net/http"
  "io/ioutil"
)
func main() {
  url := ""https://www.turkeysms.com.tr/api/v3/gonder/add-content"
  method := "POST"
  payload := strings.NewReader("{\"api_key\":\"API_KEY_HERE\",\"title\":\"SMS_TITLE_HERE\",\"text\":\"TEXT_SMS\",\"sentto\":\"90500000000\"}")
  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
  }
  req.Header.Add("Content-Type", "application/json")

  res, err := client.Do(req)
  defer res.Body.Close()
  body, err := ioutil.ReadAll(res.Body)

  fmt.Println(string(body))
}

Swift

import Foundation

var semaphore = DispatchSemaphore (value: 0)

let parameters = "{\"api_key\":\"API_KEY_HERE\",\"title\":\"SMS_TITLE_HERE\",\"text\":\"TEXT_SMS\",\"sentto\":\"90500000000\"}"
let postData = parameters.data(using: .utf8)

var request = URLRequest(url: URL(string: "https://www.turkeysms.com.tr/api/v3/gonder/add-content")!,timeoutInterval: Double.infinity)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")

request.httpMethod = "POST"
request.httpBody = postData

let task = URLSession.shared.dataTask(with: request) { data, response, error in 
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
  semaphore.signal()
}

task.resume()
semaphore.wait()

أمثلة جاهزة للإستخدام


يمكنكم تحميل ملفات جاهزة بلغة البرمجة التي تريدونها لإستخدامها من قبلكم

PHP File