كيفية إرسال رسائل SMS من Go

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

كيفية إرسال رسائل SMS من Go
الشكل 1 - كيفية إرسال رسائل SMS من Go

كود Go لإرسال رسائل SMS إلى الهاتف المحمول

يوضح مثال كود Go لإرسال الرسائل القصيرة أدناه كيف يمكنك إرسال رسائل SMS باستخدام واجهة برمجة تطبيقات HTTP Rest الخاصة بـ Ozeki SMS Gateway باستخدام حزمة Go github.com/ozekisms/go_send_sms_http_rest_ozeki. هذه الحزمة مقدمة لك مجانًا، ويمكنك استخدامها وتعديلها في أي من مشاريعك.

SendSms.go
package main

import (
	"fmt"
	
	ozeki "github.com/ozekisms/go_send_sms_http_rest_ozeki"
)

func main() {
	configuration := ozeki.NewConfiguration(
		"http_user",
		"qwe123",
		"http://127.0.0.1:9509/api",
	)

	msg := ozeki.NewMessage()
	msg.ToAddress = "+36201111111"
	msg.Text = "Hello world!"

	api := ozeki.NewMessageApi(configuration)

	result := api.Send(msg)

	fmt.Println(result)
}
	

الكود 1 - SendSms.go

كيفية استخدام مثال Go لإرسال الرسائل القصيرة:

يمكن استخدام مثال Go لإرسال الرسائل القصيرة في أي تطبيق Go. لاستخدامه، يجب عليك تنزيل حزمة github.com/ozekisms/go_send_sms_http_rest_ozeki. بعد تنزيل الحزمة، تحتاج إلى إضافة مرجع إليها في كود Go الخاص بك. سيسمح لك ذلك باستخدام الفئات المقدمة من حزمة github.com/ozekisms/go_send_sms_http_rest_ozeki. يمكنك استخدام فئة Message لإنشاء الرسالة القصيرة. يمكنك استخدام فئة MessageApi لإرسال الرسالة القصيرة إلى بوابة الرسائل القصيرة. ستقوم بوابة الرسائل القصيرة بإعادة توجيه رسالتك إلى شبكة الهاتف المحمول إما عبر اتصال لاسلكي أو عبر الإنترنت.

تنزيل SendSms.go

يمكن تنزيل كود المصدر الموضح في هذه المقالة واستخدامه وتعديله مجانًا.
تنزيل: SendSms.go.zip (992B)

ما الموجود في ملف SendSms.go.zip؟

في ملف SendSms.go.zip ستجد ملف SendSms.go، الذي يحتوي على كود المثال ليوضح لك كيفية إرسال رسالة SMS. يتم سرد كود المثال هذا أدناه.

الشكل 2 - ما الموجود داخل SendSms.go.zip

كيفية تثبيت حزمة github.com/ozekisms/go_send_sms_http_rest_ozeki

go get github.com/ozekisms/go_send_sms_http_rest_ozeki
	

الكود 2 - أمر تثبيت حزمة github.com/ozekisms/go_send_sms_http_rest_ozeki

الفيديو 1 - تثبيت حزمة github.com/ozekisms/go_send_sms_http_rest_ozeki (فيديو تعليمي)

كيفية إرسال رسائل SMS من Go (إرشادات بسيطة)

لإرسال رسائل SMS من Go:

  1. قم بتثبيت مستخدم HTTP API
  2. قم بتمكين تسجيل أحداث الاتصال في علامة التبويب المتقدم
  3. قم بإعداد Visual Studio
  4. قم بتنزيل ثم استخراج ملف SendSms.go.zip
  5. قم بتشغيل تطبيق Ozeki SMS Gateway
  6. قم بتشغيل كود Go SendSend.go باستخدام موجه الأوامر
  7. تحقق من السجلات لمعرفة ما إذا تم إرسال الرسالة القصيرة

تثبيت Ozeki SMS Gateway وإنشاء مستخدم HTTP API

لتتمكن من إرسال رسائل SMS من Go، تحتاج أولاً إلى تثبيت Ozeki SMS Gateway. يمكن تثبيت بوابة الرسائل القصيرة على نفس الكمبيوتر حيث تقوم بتطوير كود Go في أي محرر نصوص، مثل Notepad. بعد التثبيت، الخطوة التالية هي ربط Ozeki SMS Gateway بشبكة الهاتف المحمول. يمكنك إنشاء مستخدم واجهة برمجة تطبيقات HTTP لرسائل SMS. قم بإنشاء مستخدم باسم مستخدم "http_user"، وكلمة مرور "qwe123" لجعل المثال يعمل دون تعديل.

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

رابط HTTP API لاستخدام إرسال رسائل SMS من Go

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

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

مصادقة HTTP لإرسال الرسائل القصيرة من Go

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

import b64 "encoding/base64"

func (api *MessageApi) createAuthorizationHeader(username string, password string) string {
	var usernamePassword string = username + ":" + password
	var usernamePasswordEncoded string = b64.StdEncoding.EncodeToString([]byte(usernamePassword))
	return "Basic " + usernamePasswordEncoded
}
	

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

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

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

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

طلب HTTP لإرسال الرسائل القصيرة من Go

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

POST /api?action=sendmsg HTTP/1.1
Content-Length: 434
Content-Type: application/json
Accept-Encoding: gzip
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: Go-http-client/1.1

{
	"messages":	[
		{
			"message_id": "60ce97a2-dff6-11eb-990e-74d4355e997d",
			"from_connection": "",
			"from_address": "",
			"from_station": "",
			"to_connection": "",
			"to_address": "+36201111111",
			"to_station": "",
			"text": "مرحبًا بالعالم!",
			"create_date": "2021-07-08T16:11:24",
			"valid_until": "2021-07-15T16:11:24",
			"time_to_send": "2021-07-08T16:11:24",
			"submit_report_requested": true,
			"view_report_requested": true,
			"delivery_report_requested": true,
			"tags": [],
			"status": ""
		}
	]
}
	

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

بمجرد استلام بوابة الرسائل القصيرة لهذا الطلب، ستقوم بإنشاء استجابة 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: Thu, 08 Jul 2021 16:08:52 GMT
Server: 10/10.3.123
Transfer-Encoding: chunked

{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "تم وضع الرسائل في قائمة الانتظار للتسليم.",
	"data": {
	  "total_count": 1,
	  "success_count": 1,
	  "failed_count": 0,
	  "messages": [
	    {
	      "message_id": "60ce97a2-dff6-11eb-990e-74d4355e997d",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "مرحبًا بالعالم!",
	      "create_date": "2021-07-08 16:11:24",
	      "valid_until": "2021-07-15 16:11:24",
	      "time_to_send": "2021-07-08 16:11:24",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "النوع",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

قم بتوصيل بوابة الرسائل القصيرة الخاصة بك بشبكة الهاتف المحمول وإنشاء حساب مستخدم HTTP API

نفترض أنك قمت بالفعل بتثبيت Ozeki SMS Gateway، وقمت بتوصيلها بشبكة الهاتف المحمول. لكي تتمكن من إرسال رسائل قصيرة إلى هاتف محمول من Go، تحتاج إلى إعداد حساب مستخدم HTTP API في Ozeki SMS Gateway.

الفيديو 2 - كيفية إعداد حساب مستخدم HTTP API (فيديو تعليمي)

كيفية إرسال الرسائل القصيرة من Go باستخدام واجهة برمجة تطبيقات الرسائل القصيرة في Go (فيديو تعليمي)

يظهر لك هذا الفيديو كيفية تنزيل ملف SendSms.go.zip من هذه الصفحة. إذا شاهدت الفيديو، ستلاحظ أن محتويات ملف SendSms.go.zip تم وضعها على سطح مكتب Windows. سترى أيضًا أننا نقوم بتشغيل موجه الأوامر لإرسال الرسالة القصيرة.

مثال الرسائل القصيرة في Go: SendSms.go

كود المثال أدناه هو جزء من ملف SendSms.go.

الشكل 3 - ملف SendSms.go

كيفية التحقق من قبول الرسالة القصيرة من قبل مستخدم HTTP

بعد إرسال الرسالة القصيرة، من الجيد التحقق من بوابة الرسائل القصيرة الخاصة بك، لمعرفة ما تم استلامه. يمكنك التحقق من السجل عن طريق فتح تفاصيل مستخدم HTTP من وحدة تحكم إدارة Ozeki SMS Gateway. يوضح لك الفيديو التالي ما تبحث عنه.

الفيديو 4 - كيفية إرسال الرسائل القصيرة باستخدام كود Go أعلاه (فيديو تعليمي)

كيفية التحقق من إرسال الرسالة القصيرة إلى شبكة الهاتف المحمول

الخطوة الأخيرة في التحقق من الإجراء هي النظر إلى سجلات اتصال شبكة الهاتف المحمول. قد تحتاج إلى تفعيل التسجيل في إعدادات الاتصال قبل إرسال الرسالة لرؤية السجلات. إذا كان التسجيل مفعلاً، سترى رقم الهاتف ونص الرسالة التي أرسلتها.

الفيديو 5 - كيفية اختبار ما إذا كان طلب SMPP قد تم قبوله (شرح بالفيديو)

كيفية استقبال الرسائل القصيرة على هاتف أندرويد (شرح بالفيديو)

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

الفيديو 6 - كيفية استقبال الرسائل القصيرة على هاتف أندرويد (شرح بالفيديو)

الختام

الهدف من هذه المقالة هو شرح إرسال الرسائل القصيرة بلغة Go باستخدام بوابة Ozeki للرسائل القصيرة. باستخدام هذا الحل، يمكنك إرسال الرسائل بأكواد Go، حيث يتم توفير كل المعرفة والأدوات في الدليل أعلاه. يمكن التحكم ببوابة Ozeki للرسائل القصيرة بسهولة باستخدام أكواد Go، مما يثبت أن هذا البرنامج قابل للتخصيص وسهل العمل به. كما يجب ذكر أن بوابة Ozeki للرسائل القصيرة تعمل في بيئة تتحكم بها، مما يعني أن قائمة الاتصال والبيانات في أيدٍ أمينة.

يمكنك قراءة المزيد عن حلول مماثلة على صفحة البرامج التعليمية لـ Ozeki، حيث ستجد معلومات إضافية حول مواضيع مثل جدولة الرسائل القصيرة بلغة Go.

الشيء الوحيد المتبقي الآن هو تحميل بوابة Ozeki للرسائل القصيرة والبدء في العمل!

More information