زبان روبی Ruby ، جواهر برنامه نویسان است که توسط یوکیهیرو ماتسوموتور طراحی شده است . شما از زبان ruby می توانید در توسعه وب ، توسعه ابزارهای devops ، پردازش داده و یا حتی ساخت بازی های ساده و متوسط استفاده نمایید.
اگر می خواهید بدانید که چگونه با زبان روبی ruby ، پیامک ارسال کنید ، ادامه مطلب را بخوانید.
مراحل ارسال پیامک با زبان ruby
اگر میخواهید با زبان ruby ، برای شماره موبایل های مورد نظرتان پیامک ارسال کنید؛ نیاز به یک API دارید تا دستورات شما را به پنل پیامکی ارسال کنید. برای این کار باید 3 گام را طی کنید تا برنامه ruby خود را به وب سرویس پیامکی پیام رسان متصل کنید.
مرحله اول : با ثبت نام در سامانه پیامکی پیام رسان ، شما به یک وب سرویس پیامکی با معماری Restful Api دسترسی دارید خواهید داشت. این وب سرویس برای ارسال پیامک با زبان ruby بهترین گزینه است.
مرحله دوم : با فعالسازی وب سرویس پیامکی (بدون هزینه ) ، می توانید یک APIKEY اختصاصی خود را دریافت کنید و سپس از متد های آن استفاده نمایید.

مرحله سوم : نمونه کد های آماده که به زبان ruby را برایتان در ادامه قرار داده ایم که می توانید با استفاده از آن، پیامک های دلخواه خود را از طریق برنامه خود ارسال نمایید.
جهت ثبت نام در سامانه پیامکی پیام رسان ،از طریق فرم زیر اقدام نمایید.
کسب و کار داری و میخوای تبلیغات پیامکی انبوه داشته باشی؟!
جهت ثبت نام در سامانه پیامکی پیام رسان، شماره موبایل خود را وارد کنید.
وب سرویس پیامکی برای زبان swift
همانطور که در ویدیو بالا مشاهده کردید، تمامی امکانات را برای آنکه بتوانید از این Api در برنامه ruby خود استفاده نمایید بصورت فعال برای همه کاربران در سامانه پیام رسان قرار گرفته است. امکاناتی از قبیل :
- ارسال پیامک بر اساس پترن جهت استفاده از خط خدماتی شرکتی
- نمونه کد آماده و مستندات برنامه نویسی
- بروزرسانی دائمی و آپ تایم بالا
- سرعت و دقت بالا
- پشتیبانی فنی
برای شروع کار شما به تعریف یک سری مقادیر ثابت از جمله سرشماره، کلید api و … دارید که نمونه آن را در زیر قرار دادیم.
متد ارسال یک متن به یک یا چند شماره با متد Get (Send )
با این متد و نمونه کد زبان برنامه نویسی جاوااسکریپت ، می توانید در یک بار فراخوانی به حداکثر 99 شماره پیام ارسال نمایید. به این معنی که نیازی نیست به ازای هر شماره یک بار متد را فراخوانی نمایید.
می توانید شماره ها را به دسته های 99 تایی تقسیم نموده و هر دسته را توسط یک آرایه با زبان جاوااسکریپت به این وب سرویس پیامکی ارسال کنید.
require 'net/http'
require 'uri'
url = URI.parse("https://api.sms-webservice.com/api/V3/Send?ApiKey=YourApiKey&Text=YourSMSText&Sender=5000&Recipients=09123456789")
# ایجاد درخواست GET
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url.request_uri)
# ارسال درخواست و دریافت پاسخ
response = http.request(request)
# بررسی وضعیت پاسخ
if response.code.to_i == 200
puts response.body # موفقیت: نمایش پاسخ
else
puts "Error: #{response.code}" # خطا: نمایش وضعیت خطا
end
متد ارسال یک متن به یک یا چند شماره با متد post (SendBulk )
کاربرد این متد مشابه متد قبلی است. تنها تفاوت آن در نوع درخواست است که برای ارسال پیامک با Ruby ارسال میکنید. در متد اول، درخواست از نوع GET است، در حالی که در متد دوم از نوع POST است. تفاوت اصلی POST این است که امنیت بالاتری دارد و امکان ارسال حجم بیشتری از دادهها را فراهم میکند.
require 'net/http'
require 'uri'
require 'cgi'
url = URI.parse("https://api.sms-webservice.com/api/V3/SendBulk")
payload = "ApiKey=YourApiKey&Text=YourSMSText&Sender=5000&Recipients=09123456789"
# ایجاد درخواست POST
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url.request_uri)
request['Content-Type'] = 'application/x-www-form-urlencoded'
request.body = payload
# ارسال درخواست و دریافت پاسخ
response = http.request(request)
# بررسی وضعیت پاسخ
if response.code.to_i == 200
puts response.body # موفقیت: نمایش پاسخ
else
puts "Error: #{response.code}" # خطا: نمایش وضعیت خطا
end
متد ارسال چند متن به چند گیرنده (SendMultiple)
اگر میخواهید با زبان Ruby برای هر گیرنده پیام متفاوتی ارسال کنید، این متد و کد نمونه برای شما مناسب است. با استفاده از این روش، نیازی به ارسال درخواست جداگانه برای هر گیرنده نخواهید داشت و میتوانید پیامهای خود را در گروههای 100 تایی به وبسرویس پیامکی ارسال کنید.
require 'net/http'
require 'uri'
require 'json'
url = URI.parse("https://api.sms-webservice.com/api/V3/SendMultiple")
# بدنه JSON برای ارسال
payload = {
"ApiKey" => "YourApiKey",
"Recipients" => [
{
"Sender" => 5000,
"Text" => "YourSMSText",
"Destination" => "09123456789",
"UserTraceId" => 0000
}
]
}.to_json
# ایجاد درخواست POST
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url.request_uri)
request['Content-Type'] = 'application/json'
request.body = payload
# ارسال درخواست و دریافت پاسخ
response = http.request(request)
# بررسی وضعیت پاسخ
if response.code.to_i == 200
puts response.body # موفقیت: نمایش پاسخ
else
puts "Error: #{response.code}" # خطا: نمایش وضعیت خطا
end
متد ارسال به یک شماره با استفاده از الگوی تعریف شده (SendTokenSingle)
اگر برنامهنویس حرفهای باشید، احتمالاً با مفهوم ارسال پیامک از طریق پترن آشنا هستید. این قابلیت به شما امکان میدهد پیامکها را از سریعترین خط خدماتی ارسال کنید. این ویژگی برای پیامکهایی که باید با سرعت بالا به تمامی شمارهها، حتی شمارههای موجود در بلکلیست مخابراتی، ارسال شوند، مناسب است. به عنوان مثال، برای ارسال پیامکهای کد تایید و احراز هویت کاربران. در این شرایط، با استفاده از کد Ruby میتوانید از قابلیت پترن پیامرسان بهرهبرداری کنید. اگر ویدئوی ابتدایی مقاله را مشاهده کرده باشید، بیشتر با مفهوم پترن و قالب آن آشنا خواهید شد.
require 'net/http'
require 'uri'
url = URI.parse("https://api.sms-webservice.com/api/V3/SendTokenSingle")
# ایجاد درخواست GET
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url.request_uri)
# تنظیم هدرهای سفارشی
request['ApiKey'] = 'YourApiKey'
request['TemplateKey'] = 'YourPattern'
request['Destination'] = '09123456789'
request['P1'] = 'Param1'
request['P2'] = 'Param2'
request['P3'] = 'Param3'
# ارسال درخواست و دریافت پاسخ
response = http.request(request)
# بررسی وضعیت پاسخ
if response.code.to_i == 200
puts response.body # موفقیت: نمایش پاسخ
else
puts "Error: #{response.code}" # خطا: نمایش وضعیت خطا
end
متد ارسال یک الگو با متن های مختلف به چند شماره (SendTokenMulti)
اگر در حال توسعه برنامه یا سایت خود با زبان Ruby هستید و میخواهید از قابلیت پترن برای ارسال پیامکهای مختلف استفاده کنید، این متد برای شما مناسب است. با یک درخواست میتوانید پیامکها را برای چندین شماره با استفاده از یک قالب ارسال کنید.
require 'net/http'
require 'uri'
require 'cgi'
url = URI.parse("https://api.sms-webservice.com/api/V3/SendTokenMulti")
# دادههای فرم URL-encoded
payload = "ApiKey=YourApiKey&TemplateKey=YourPattern&Destination=09123456789&P1=Param1&P2=Param2&P3=Param3"
# ایجاد درخواست POST
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url.request_uri)
request['Content-Type'] = 'application/x-www-form-urlencoded'
request.body = payload
# ارسال درخواست و دریافت پاسخ
response = http.request(request)
# بررسی وضعیت پاسخ
if response.code.to_i == 200
puts response.body # موفقیت: نمایش پاسخ
else
puts "Error: #{response.code}" # خطا: نمایش وضعیت خطا
end
متد دریافت لیست الگوهای تعریف شده در پنل (TokenList)
اگر بخواهید لیست الگوهای تعریفشده در پنل را مشاهده کنید، میتوانید از این متد استفاده کنید. برای دریافت وضعیت پیامهای ارسالشده (StatusById)، زمانی که نیاز دارید وضعیت پیامهای ارسالشده را بررسی کنید، باید از این متد بهره ببرید. در یک درخواست میتوانید وضعیت چندین پیام را به طور همزمان استعلام کنید.
require 'net/http'
require 'uri'
url = URI.parse("https://api.sms-webservice.com/api/V3/TokenList")
# دادههای فرم URL-encoded
payload = "ApiKey=YourApiKey"
# ایجاد درخواست POST
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url.request_uri)
request['Content-Type'] = 'application/x-www-form-urlencoded'
request.body = payload
# ارسال درخواست و دریافت پاسخ
response = http.request(request)
# بررسی وضعیت پاسخ
if response.code.to_i == 200
puts response.body # موفقیت: نمایش پاسخ
else
puts "Error: #{response.code}" # خطا: نمایش وضعیت خطا
end
متد دریافت وضعیت پیام های ارسالی (StatusByTraceId)
زمانی که بخواهیم پس از ارسال پیام، وضعیت آن را بررسی کنیم ولی شناسههای پیامکهای ارسالشده را نداشته باشیم، میتوانیم از این متد استفاده کنیم. در یک درخواست میتوان وضعیت چندین پیام را به طور همزمان استعلام کرد.
require 'net/http'
require 'uri'
require 'json'
url = URI.parse("https://api.sms-webservice.com/api/V3/StatusByUserTraceId")
# دادههای JSON برای ارسال در درخواست
payload = {
"ApiKey" => "YourApiKey",
"UserTraceIds" => [0]
}.to_json
# ایجاد درخواست POST
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url.request_uri)
request['Content-Type'] = 'application/json'
request.body = payload
# ارسال درخواست و دریافت پاسخ
response = http.request(request)
# بررسی وضعیت پاسخ
if response.code.to_i == 200
puts response.body # موفقیت: نمایش پاسخ
else
puts "Error: #{response.code}" # خطا: نمایش وضعیت خطا
end
متد دریافت مقدار اعتبار و لیست خطوط ارسال کننده فعال در پنل (AccountInfo)
اگر بخواهید گزارشی از مقدار اعتبار باقیمانده یا لیست خطوط فعال در پنل خود داشته باشید، میتوانید از این متد استفاده کنید. برای فراخوانی این متد، کافی است کد شناسه پنل خود را در بدنه درخواست ارسال کنید.
require 'net/http'
require 'uri'
url = URI.parse("https://api.sms-webservice.com/api/V3/AccountInfo")
# ایجاد درخواست POST
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url.request_uri)
request['ApiKey'] = 'YourApiKey'
# ارسال درخواست و دریافت پاسخ
response = http.request(request)
# بررسی وضعیت پاسخ
if response.code.to_i == 200
puts response.body # موفقیت: نمایش پاسخ
else
puts "Error: #{response.code}" # خطا: نمایش وضعیت خطا
end