كيفية جدولة رسالة SMS في Objective C

أبسط طريقة لإرسال رسائل SMS مجدولة من Objective-C هي استخدام واجهة برمجة تطبيقات HTTP/Rest المدمجة في Ozeki SMS Gateway. عند استخدام هذه الواجهة، ستقوم بإرسال رسائل SMS عن طريق إصدار طلب HTTP Post إلى بوابة الرسائل. سيحتوي طلب HTTP Post على رسالة مُنسقة بتنسيق json. ستقوم بوابة الرسائل بإرسال هذه الرسالة إلى هاتف المستلم، وسيتم إرجاع استجابة HTTP 200 OK إلى طلبك.

كيفية جدولة رسالة sms في objective c
الشكل 1 - كيفية جدولة رسالة SMS في Objective C

كود Objective-C لإرسال رسالة SMS مجدولة إلى الهاتف المحمول

يوضح مثال كود Objective-C لإرسال SMS أدناه كيف يمكنك إرسال SMS باستخدام واجهة برمجة تطبيقات HTTP REST الخاصة بـ Ozeki SMS Gateway باستخدام مكتبة Ozeki.Libs.Rest. هذه المكتبة مقدمة لك مجانًا، ويمكنك استخدامها وتعديلها في أي من مشاريعك.

SendScheduledSms.m
#import <Foundation/Foundation.h>
#import "Ozeki.Libs.Rest.h"

int main(int argc, const char * argv[]) {
    Configuration * configuration = [ [ Configuration alloc ] init];
    [ configuration setUsername : @"http_user" ];
    [ configuration setPassword : @"qwe123" ];
    [ configuration setApiUrl : @"http://192.168.0.14:9509/api" ];
    
    MessageApi * api = [ [ MessageApi alloc ] initWithConfiguration : configuration ];
    
    Message * msg = [ [ Message alloc ] init ];
    [ msg setToAddress : @"+36201111111" ];
    [ msg setText : @"Hello world 1" ];
    
    NSDateFormatter * dateFormat = [ [ NSDateFormatter alloc ] init ];
    [ dateFormat setDateFormat : @"yyyy-MM-dd HH:mm:ss" ];
    
    [ msg setTimeToSend: [ dateFormat dateFromString : @"2021-07-23 10:00:00" ] ] ;
    
    MessageSendResult * result = [ api SendMessage : msg ];
    
    NSLog(@"%@", result);
    
    return 0;
}

كيفية استخدام مثال Objective-C لإرسال SMS:

يمكن استخدام مثال Objective-C لإرسال SMS هذا في أي تطبيق أساسي لـ Objective C. لاستخدامه، يجب عليك إضافة ملف الرأس Ozeki.Libs.Rest.h وملف التنفيذ Ozeki.Libs.Rest.m إلى مشروعك. بعد إضافة المرجع إلى المشروع، يجب وضع التوجيه using Ozeki.Libs.Rest; في قسم الرأس من كود Objective-C المصدر الخاص بك. سيسمح لك ذلك باستخدام الفئات المقدمة من مكتبة Ozeki.Libs.Rest. يمكنك استخدام فئة Message لإنشاء الرسالة النصية. يمكنك استخدام فئة MessageApi لإرسال الرسالة النصية إلى بوابة الرسائل. ستقوم بوابة الرسائل بإعادة توجيه رسالتك إلى شبكة الهاتف المحمول إما عبر اتصال لاسلكي أو عبر الإنترنت.

تنزيل SendScheduledSms.m

يمكن تنزيل الكود المصدري الموضح في هذه المقالة واستخدامه وتعديله مجانًا.
تنزيل: SendScheduledSms.m.zip (46.2Kb)

ما الموجود في ملف SendScheduledSms.m؟

يحتوي ملف SendScheduledSms.m على مكتبة Ozeki.Libs.Rest، والتي تمنحك جميع الأدوات اللازمة لإرسال واستقبال رسائل SMS. ستجد أيضًا مشروع SendScheduledSms في ملف ZIP، والذي يحتوي على كود المثال ليوضح لك كيفية إرسال رسالة SMS. تم سرد كود المثال هذا أدناه.

دليل send scheduled sms m
الشكل 2 - ما الموجود داخل SendScheduledSms.m.zip

كيفية إرسال رسالة SMS مجدولة من Objective-C (خطوات سريعة)

لإرسال رسالة SMS مجدولة من Objective-C:

  1. قم بتثبيت مستخدم HTTP API على جهاز يعمل بنظام Windows
  2. قم بتمكين تسجيل أحداث الاتصال في علامة التبويب المتقدم
  3. قم بإعداد Xcode
  4. قم بتنزيل ثم استخراج ملف SendScheduledSms.m.zip
  5. افتح ملف SendScheduledSms.xcodeproj في Xcode
  6. قم بتشغيل تطبيق Ozeki SMS Gateway على جهاز Windows الخاص بك
  7. قم بتشغيل كود Objective C SendScheduledSms.m في Xcode
  8. تحقق من السجلات لمعرفة ما إذا تم إرسال الرسالة النصية
تثبيت Ozeki SMS Gateway وإنشاء مستخدم HTTP API

لتتمكن من إرسال رسائل SMS من Objective-C، تحتاج أولاً إلى تثبيت Ozeki SMS Gateway. يمكن تثبيت بوابة الرسائل على نفس الكمبيوتر الذي تقوم فيه بتطوير كود Objective-C في Visual studio. بعد التثبيت، تكون الخطوة التالية هي ربط Ozeki SMS Gateway بشبكة الهاتف المحمول. يمكنك إنشاء مستخدم HTTP SMS API. قم بإنشاء مستخدم باسم مستخدم "http_user"، وكلمة مرور "qwe123" لجعل المثال يعمل دون تعديل.

بعد إعداد البيئة، يمكنك تشغيل كود Objective-C الخاص بك.

رابط HTTP API لاستخدام إرسال SMS من Objective-C

لإرسال رسائل SMS من Objective-C، سيتعين على كود Objective-C الخاص بك إصدار طلب HTTP إلى بوابة الرسائل. يظهر رابط API أدناه. لاحظ أنه يجب استبدال عنوان IP (127.0.0.1) بعنوان IP الخاص ببوابة الرسائل لديك. إذا كان Ozeki SMS Gateway مثبتًا على نفس الكمبيوتر الذي يعمل عليه تطبيق Objective-C لإرسال الرسائل، فيمكن أن يكون هذا 127.0.0.1. إذا كان مثبتًا على كمبيوتر مختلف، فيجب أن يكون عنوان IP لهذا الكمبيوتر.

http://127.0.0.1:9509/api?action=rest

مصادقة HTTP لإرسال الرسائل القصيرة من Objective-C

لمصادقة عميل الرسائل القصيرة في Objective-C، تحتاج إلى إرسال اسم المستخدم وكلمة المرور في سلسلة مشفرة بـ base64 إلى الخادم عبر طلب HTTP. التنسيق المستخدم هو: base64(username+":"+password). في Objective-C يمكنك استخدام الكود التالي لإجراء هذا التشفير:

NSString * username_password = [ NSString stringWithFormat : @"%@:%@", username, password ];
NSData * encode_data = [username_password dataUsingEncoding:NSUTF8StringEncoding];
NSString * username_password_encoded  = [encode_data base64EncodedStringWithOptions : 0];
return  [ NSString stringWithFormat : @"Basic %@", username_password_encoded ];

على سبيل المثال، إذا قمت بتشفير اسم المستخدم 'http_user' وكلمة المرور 'qwe123'، ستحصل على السلسلة المشفرة التالية بـ base64: aHR0cF91c2VyOnF3ZTEyMw==. لإرسال

رأس طلب HTTP لإرسال الرسائل القصيرة من Objective-C

لإرسال الرسائل القصيرة، تحتاج إلى تضمين الأسطر التالية كرؤوس في طلب HTTP. لاحظ أننا نضمن نوع المحتوى ورأس المصادقة.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

طلب HTTP لإرسال الرسائل القصيرة من Objective-C

لإرسال الرسائل القصيرة، سيقوم تطبيقك في Objective-C بإرسال طلب HTTP مشابه للطلب أدناه. لاحظ أن هذا الطلب يحتوي على جزء رأس HTTP وجسم HTTP. جسم HTTP هو سلسلة بيانات مشفرة بـ JSON. يحتوي على رقم المستلم ونص الرسالة.

POST /api?action=sendmsg HTTP/1.1
Connection: keep-alive
Content-Length: 333
Content-Type: application/json
Accept: application/json
Accept-Encoding: gzip, deflate
Accept-Language: en-gb
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 192.168.0.14:9509
User-Agent: SendScheduledSms.m (unknown version) CFNetwork/1220.1 Darwin/20.3.0
 
{
	"messages": [
		{
			"is_view_report_requested": false,
			"create_date": "2021-07-23T10:16:59",
			"message_id": "cab9eb77-309b-4aa4-99ba-cdac32388f7d",
			"time_to_send": "2021-07-23T10:20:00",
			"valid_until": "2021-07-30T10:16:59",
			"is_submit_report_requested": false,
			"to_address": "+36201111111",
			"text": "Hello world 1",
			"is_delivery_report_requested": false
		}
	]
}

استجابة HTTP المستلمة من مثال الرسائل القصيرة في Objective-C

بمجرد أن يستقبل بوابة الرسائل القصيرة هذا الطلب، سوف يولد استجابة HTTP. ستحتوي استجابة HTTP على رمز حالة، للإشارة إلى ما إذا كان طلب إرسال الرسالة ناجحًا أم لا. كما ستعود ببنية مشفرة بـ JSON لتزويدك بتفاصيل مفيدة حول إرسال الرسالة.

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.123 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Fri, 23 Jul 2021 09:58:42 GMT
Server: 10/10.3.123
Transfer-Encoding: chunked

{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "Messages queued for delivery.",
	"data": {
	  "total_count": 1,
	  "success_count": 1,
	  "failed_count": 0,
	  "messages": [
	    {
	      "message_id": "cab9eb77-309b-4aa4-99ba-cdac32388f7d",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-07-23 10:16:59",
	      "valid_until": "2021-07-30 10:16:59",
	      "time_to_send": "2021-07-23 10:20:00",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}

مثال الرسائل القصيرة في Objective-C: SendScheduledSms.xcodeproj

كيفية تنزيل كود المثال (فيديو تعليمي)

في هذا الفيديو، سترى كيف يمكنك تنزيل كود المصدر لإرسال الرسائل القصيرة المجدولة. سيبدأ بصفحة التنزيل وسيأخذك حتى فتح المشروع. ستتعلم كيفية تنزيله وأي برنامج تستخدم لفتح المشروع. الفيديو مدته 28 ثانية فقط ولكنه مفصل جدًا لذا لن تواجه أي مشكلة في اتباع الخطوات. لا تضيع المزيد من الوقت. لنبدأ بإرسال الرسائل القصيرة!

الفيديو 1 - كيفية تنزيل وفتح الحل أعلاه (فيديو تعليمي)

كود المثال أدناه هو جزء من مشروع SendScheduledSms.xcodeproj. في ملف ZIP يوجد مشروع واحد فقط: SendScheduledSms.xcodeproj، وثلاثة ملفات: SendScheduledSms.m, Ozeki.Libs.Rest.h, Ozeki.Libs.Rest.m.

كيفية إرسال رسائل قصيرة مجدولة باستخدام Objective-C
الشكل 3 - SendScheduledSms.xcodeproj

كيفية استخدام الكود (فيديو تعليمي)

في هذا الفيديو سنعرض لك كيفية استخدام مشروع SendScheduledSMS. سيبدأ بعلامة تبويب الأحداث الفارغة في بوابة Ozeki SMS وسيأخذك حتى علامة تبويب الأحداث مع سجل أول رسالة قصيرة مرسلة. ستتعلم كيفية فتح علامة تبويب الأحداث وكيفية تشغيل كود إرسال الرسائل القصيرة المجدولة في Xcode. هذا الفيديو رائع لأنه يستغرق دقيقة واحدة للمشاهدة ولكنه يحتوي على جميع المعلومات التي تحتاجها.

الفيديو 2 - كيفية استخدام مشروع SendScheduledSms.xcodeproj (فيديو تعليمي)

ملخص

شرح هذا المقال كيفية جدولة الرسائل في Objective C. هذه وظيفة مفيدة حقًا إذا كنت ترغب في إرسال رسائل SMS في وقت محدد. يساعدك هذا الحل أو شركتك على أن تكون أكثر ملاءمة للعملاء حيث سيتم تسليم الرسائل عندما لا يكون العملاء مشغولين. من المهم ملاحظة أن بوابة Ozeki SMS Gateway تعمل في أي بلد ويمكنها إرسال واستقبال الرسائل القصيرة عبر اتصالات متنوعة بالهاتف المحمول.

تأكد من أن القراءة لم تنته هنا، قم بزيارة صفحة البرامج التعليمية لـ Ozeki حيث يمكن العثور على المزيد من المعلومات حول مواضيع مثل حذفها في Objective C.

الآن الشيء الوحيد المتبقي هو تنزيل بوابة Ozeki SMS Gateway والبدء في العمل!

More information