BD Bulk SMSLogin BD Bulk SMSRegister

BD Bulk SMS API

API Link

API URL (Plain Text Output): http://api.greenweb.com.bd/api.php
Or,
API URL (JSON Output): http://api.greenweb.com.bd/api.php?json

SSL Version: http এর পরিবর্তে যদি https ব্যবহার করতে চান সেক্ষেত্রে অবশ্যই http://api.greenweb.com.bd এর পরিবর্তে https://api.greenweb.com.bd ব্যবহার করতে হবে ।

Token Generate করুন :
https://gwb.li/token

অন্যান্য API Usages:


URL: http://api.greenweb.com.bd/g_api.php (প্লেইন টেক্সট আউটপুট)
URL: http://api.greenweb.com.bd/g_api.php?json  (JSON আউটপুট)

ব্যালেন্স দেখতে: http://api.greenweb.com.bd/g_api.php?token=yourtokencodehere&balance
ব্যালেন্স দেখতে (JSON Format): http://api.greenweb.com.bd/g_api.php?token=yourtokencodehere&balance&json

এসএমএস রেট দেখতে: http://api.greenweb.com.bd/g_api.php?token=yourtokencodehere&rate

টোকেন থেকে মোট কতটি এসএমএস পাঠানো হয়েছে দেখতে: http://api.greenweb.com.bd/g_api.php?token=yourtokencodehere&tokensms

মূল অ্যাকাউন্ট থেকে মোট কতটি এসএমএস পাঠানো হয়েছে দেখতে: http://api.greenweb.com.bd/g_api.php?token=yourtokencodehere&totalsms

মূল অ্যাকাউন্ট থেকে Current Month এ কত এসএমএস পাঠানো হয়েছে দেখতে: http://api.greenweb.com.bd/g_api.php?token=yourtokencodehere&monthlysms

টোকেন থেকে  Current Month এ কত এসএমএস পাঠানো হয়েছে দেখতে: http://api.greenweb.com.bd/g_api.php?token=yourtokencodehere&tokenmonthlysms

মূল অ্যাকাউন্ট থেকে  XX Month এ কত এসএমএস পাঠানো হয়েছে দেখতে (XX এর জায়গাতে মাস-বছর ( যেমন জানুয়ারী ২০২২ এর জন্য 01-2022) ফরম্যাটে মাস উল্ল্যেখ করতে হবে): http://api.greenweb.com.bd/g_api.php?token=yourtokencodehere&monthlysms=03-2024
টোকেন থেকে XX Month এ কত এসএমএস পাঠানো হয়েছে দেখতে (XX এর জায়গাতে মাস-বছর ( যেমন জানুয়ারী ২০২২ এর জন্য 01-2022) ফরম্যাটে মাস উল্ল্যেখ করতে হবে): http://api.greenweb.com.bd/g_api.php?token=yourtokencodehere&tokenmonthlysms=03-2024 এসএমএস এর মেয়াদ দেখতে: http://api.greenweb.com.bd/g_api.php?token=yourtokencodehere&expiry সব একত্রে: http://api.greenweb.com.bd/g_api.php?token=yourtokencodehere&expiry&rate&tokensms&totalsms&monthlysms&tokenmonthlysms সব একত্রে (json): http://api.greenweb.com.bd/g_api.php?token=yourtokencodehere&expiry&rate&tokensms&totalsms&monthlysms&tokenmonthlysms&json

Demo Token: 1234567890123456789

Request Methods: POST (recommended) & GET
Parameters: to, message, token
গ্রিনওয়েব API কে GET and POST দুইভাবেই ব্যবহার করতে পারবেন । প্রথমে নিচের লিংকে গিয়ে Access Token Generate করুন ।
https://sms.greenweb.com.bd/index.php?ref=gen_token
আপনার অ্যাকাউন্ট না থাকলে টেস্টিং অথবা ইন্টিগ্রেশনের জন্য 1234567890123456789 ডেমো টোকেনটি ব্যবহার করুন। এটি ব্যবহার করলে SMS সেন্ড হবে না;তবে API রিসপন্স রিটার্ন করবে। যা দেখে ইন্টিগ্রেশনের কাজ করতে পারবেন। ইন্টিগ্রেশনের পরে অবশ্যই ডেমো টেকেনটি পরিবর্তন করে আসল টোকেন ব্যবহার করবেন । এরপর নিচের মত করে ফিল্ড পুরন করুন: POST: token = যে টোকেন জেনারেট করেছেন । to = যে নাম্বার গুলোতে SMS দিতে চান । নাম্বার অবশ্যই +8801xxxxxxxxx অথবা 01xxxxxxxxx এই ফরম্যাটের হতে হবে message = যা ম্যাসেজে দিতে চান । যেমন: POST Method

<form action="http://api.greenweb.com.bd/api.php" method="post">
<input type="text" name="token" placeholder="token" />
<input type="text" name="to" placeholder="+8801xxxxxxxxx,+8801xxxxxxxxx" />
<textarea class="span11" name="message" id="message" style="position: relative; left: 4%;" ></textarea>
<button type="submit" name="submit" class="btn btn-success btn-large">Send Message</button>
</form>
Get Method:
http://api.greenweb.com.bd/api.php?token=tokencodehere&to=017xxxxxxxx,015xxxxxxxx&message=my+message+is+here
Get Method ব্যবহার করতে চাইলে অবশ্যই ম্যাসেজ URL ENCODE করে নিবেন । URL Encode করতে rawurlencode() ফাংশন ব্যবহার করুন যদি পিএইচপি স্ক্রিপ্ট হয় । যদি জাভাস্ক্রিপ্ট হয় তবে encodeURI() ফাংশন ব্যবহার করুন । আর html হলে স্পেসকে + দিয়ে রিপ্লেস করুন ।

যেকোনো html ফর্ম থেকে নিচের মতন করে এসএমএস প্রেরন করা যাবে

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token

<form action="http://api.greenweb.com.bd/api.php" method="post">
<input type="text" name="token" placeholder="token" />
<input type="text" name="to" placeholder="+8801xxxxxxxxx,+8801xxxxxxxxx" />
<textarea class="span11" name="message" id="message" style="position: relative; left: 4%;" ></textarea>
<button type="submit" name="submit" class="btn btn-success btn-large">Send Message</button>
</form>

কিভাবে প্রেরনকৃত এসএমএস এর রেজাল্ট/রিসপন্স প্রসেস করবেন ?

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token

Default ভাবে আমাদের  API প্লেইন টেক্সট রিসপন্স্ দেয় যা লাইন বাই লাইন সেপারেট থাকে । প্রতি লাইন কে আপনি array তে কনভার্ট করে সফল ম্যাসেজের জন্য Ok: অথবা ফেইল এসএমএস এর জন্য  Error: শব্দটির সাথে ম্যাচ করাতে পারবেন । যেমন:  এখানে php তে প্রোসেস করে দেখানো হলো 

স্যাম্পল কোডে নিচের অংশ আছে:
$smsresult = curl_exec($ch);

অর্থাৎ Curl এক্সিকিউশনের পর $smsresult স্ট্রিং পেয়েছেন । এবার এটাকে array তে কনভার্ট  করবো :

$smsresultarray = preg_split('/\r\n|\r|\n/', $smsresult);

এবার array কে ল্যুপে নিবো

foreach($smsresultarray as $result) {
  $status = mb_substr($result, 0, 2);

  if ($status == 'Ok') {
	  //sms successfully sent do whatever you want
	  echo $result;
  } else {
	//failed to sent do whatever you want
	echo $result;
  }
}

এভাবে খুব সহজেই আপনার প্রোগ্রামিং ল্যাংগুয়েজ অনুযায়ী লাইন কে  array তে কনভার্ট করে সফল ম্যাসেজের জন্য Ok: অথবা ফেইলড এসএমএস এর জন্য  Error: শব্দটির সাথে ম্যাচ করাতে পারবেন ।

তবে আপনি চাইলে JSON ফরম্যাটেও রিসপন্স প্রসেস করতে পারবেন ।  JSON ফরম্যাটে রিসপন্স পেতে API url এর শেষে &json দিতে হবে ।  http://api.greenweb.com.bd/api.php?json এভাবে ।
যেমন  :  

<?php        
$to = "017xxxxxxx,+88016xxxxxxx";
$token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$message = "Test SMS using API";

//নিচের লাইনের URL এ শুধু  সামান্য পরিবর্তন হবে ->
$url = "http://api.greenweb.com.bd/api.php?json";


$data= array(
'to'=>"$to",
'message'=>"$message",
'token'=>"$token",
'json'=>"1",
); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$smsresult = curl_exec($ch);

//Result
echo $smsresult;

//Error Display
echo curl_error($ch);

?>

উপরের কোড দুটি থেকে দেখা যাচ্ছে যে শুধু API URL এর পরিবর্তন করে JSON Output পাওয়া যাবে । JSON Output নিচের মত ফরম্যাটে হবে :
 [
    {
        "to": "+8801xxxxxxx",
        "message": "test sms",
        "status": "SENT",
        "statusmsg": "SMS Sent Successfully To  +8801xxxxxxx"
    },
    {
        "to": "+8801xxxxxxx",
        "message": "test sms",
        "status": "FAILED",
        "statusmsg": "+8801xxxxxxx Invalid Number"
    }
]

PHP তে এই  $smsresult স্ট্রিং এ থাকা json আউটপুট প্রোসেস করা যাবে নিচের পদ্ধতিতে

$smsresult = json_decode($smsresult);
foreach ($smsresult as $result) {
if ($result->status == "SENT") {
	echo "SMS sent successfully";
	echo $result->to;
	echo $result->status;
	echo $result->statusmsg;
} else {
	echo "Failed to send";
	echo $result->to;
	echo $result->status;
	echo $result->statusmsg;	
}
}
(One to one/One to many)

ধরুন আপনি একটি ম্যাসেজ একটি নাম্বারে অথবা ঐ একটি ম্যাসেজই একাধিক নাম্বারে প্রেরন করতে চান । প্রথমে টোকেন জেনারেট করুন, এরপর নিচের কোডে token দিন, $message এ আপনার টেক্সট লিখুন এরপর $to তে নাম্বার দিন । একাধিক নাম্বার হলে অবশ্যই নাম্বার গুলো কমা সেপারেটেড হতে হবে ।

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token

<?php        
$to = "017xxxxxxx,+88016xxxxxxx";
$token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$message = "Test SMS using API";

$url = "http://api.greenweb.com.bd/api.php?json";


$data= array(
'to'=>"$to",
'message'=>"$message",
'token'=>"$token"
); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$smsresult = curl_exec($ch);

//Result
echo $smsresult;

//Error Display
echo curl_error($ch);

?>
			
মূলত দুইটি ডেটা লাগবে আপনার সাইট থেকে আর একটি পাওয়া যাবে আমাদের কন্ট্রোলপ্যানলের থেকে । প্রথমে আপনার সাইট থেকে $to (যাকে এসএমএস দিতে চান) এবং ম্যাসেজে যা দিতে চান তা $message ভারিয়্যাবলে নিয়ে আসুন । এরপর টোকেন কোড আমাদের কন্ট্রোল প্যানেল থেকে জেনারেট করে নিন। এরপর সেন্ড এর ফাংশন ব্যবহার করুন (CURL) । $smsresult ভ্যারিয়েবলে সেন্ড করা ম্যাসেজের রেজাল্ট আসবে এটা চাইলে ডেটাবেজে সেভ কিংবা অন্য কাজে লাগাতে পারবেন ।
(One to one/One to many)

ধরুন আপনার ডেটাবেজে নাম্বার আছে আর ঐসব নাম্বারে এসএসএম প্রেরন করতে চান । এ ক্ষেত্রে এই পদ্ধতি ব্যবহার করতে পারেন । এই পদ্ধতিতে ভিন্ন ভিন্ন Single Request এর মাধ্যমে একই সময়ে একাধিক এসএমএস প্রেরন করা যাবে ।

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token
Example: যখন লেখা একই হবে কিন্তু এক বা একাধিক ভিন্ন নাম্বারে প্রেরন করবেন
		
<?php 

//প্রথমে আপনার সুবিধে মত করে ডেটাবেজ হতে ডেটা নিন এখানে mysqli ব্যবহার করে mysql/mariadb ডেটাবেজ হতে ডেটা নিয়ে দেখানো হলো ।

$dblink = mysqli_connect("localhost", "dbusername", "dbpassword", "dbname");
/* If connection fails throw an error */
if (mysqli_connect_errno()) {
    echo "Could  not connect to database: Error: ".mysqli_connect_error();
    exit();
}
$sqlquery = "SELECT number FROM table_name";
if ($result = mysqli_query($dblink, $sqlquery)) {
    /* fetch associative array */
    while ($row = mysqli_fetch_assoc($result)) {
	$number = $row["number"];
	$to = "$number,$to";
    }
} 

// আমরা $to তে সব নাম্বার কমা সেপারেট করা অবস্থায় পেয়েছি এবার এসএমএস প্রেরন করুন
$token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$message = "Test SMS using API";

$url = "http://api.greenweb.com.bd/api.php";


$data= array(
'to'=>"$to",
'message'=>"$message",
'token'=>"$token"
); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$smsresult = curl_exec($ch);

//Result
echo $smsresult;

//Error Display
echo curl_error($ch);

?>
			
Example: যখন ভিন্ন ভিন্ন লেখা ভিন্ন ভিন্ন নাম্বারে প্রেরন করবেন
		
<?php 

//প্রথমে আপনার সুবিধে মত করে ডেটাবেজ হতে ডেটা নিন এখানে mysqli ব্যবহার করে mysql/mariadb ডেটাবেজ হতে ডেটা নিয়ে দেখানো হলো এবং লুপের মধ্যে এসএমএস সেন্ড করার কোড দিয়ে  ডাইনামিক ভাবে এসএমএস প্রেরন করা হলো । তবে এভাবে ডাইনামিক প্রেরন না করে many to many পদ্ধতি ব্যবহার করতে পারেন যদি সিঙ্গেল রিকোয়েস্টে একাধিক এসএমএস প্রেরন করতে চান । মনে রাখবেন এই পদ্ধতি একটি এসএমএস একটি সিঙ্গেল রিকোয়েস্টের মাধ্যমে প্রোসেস করে । আর Many to Many পদ্ধতি একাধিক এসএমএস একটি সিঙ্গেল রিকোয়েস্টের মাধ্যমে প্রোসেস করে । 

$dblink = mysqli_connect("localhost", "dbusername", "dbpassword", "dbname");
/* If connection fails throw an error */
if (mysqli_connect_errno()) {
    echo "Could  not connect to database: Error: ".mysqli_connect_error();
    exit();
}
$sqlquery = "SELECT number FROM table_name";
if ($result = mysqli_query($dblink, $sqlquery)) {
    /* fetch associative array */
    while ($row = mysqli_fetch_assoc($result)) {
	$to = $row["number"];
	$samplecolumn = $row["samplecolumn"];
	 
$token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$message = "Test SMS using API $samplecolumn";

$url = "http://api.greenweb.com.bd/api.php";


$data= array(
'to'=>"$to",
'message'=>"$message",
'token'=>"$token"
); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$smsresult = curl_exec($ch);

//Result
echo $smsresult;

//Error Display
echo curl_error($ch);	
	
    }
} 
?>
			
(Many to Many)

ধরুন আপনার ডেটাবেজ অথবা অ্যাপ্লিকেশন থেকে ভিন্ন ভিন্ন নাম্বারে ভিন্ন ভিন্ন SMS একই সময়ে একটি সিঙ্গেল রিকোয়েস্টের মাধ্যমে প্রেরন করতে চান

এর সুবিধা: ১. আপনার ওয়েব সার্ভারে খুব কম লোড দিবে
২. দ্রুত ডাইনামিক এসএমএস সেন্ড করবে
৩. এক http রিকোয়েস্টে ডেটাবেজের সব এসএমএস একসাথে পাঠানো যাবে
Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token

JSON Format: [{"to":"+8801xxxxxxxxx","message":"firstsmstest"},{"to":"018xxxxxxxxxxx","message":"secondmesssagehere"}] 

(অনন্য ক্ষেত্রে আপনারা to, message, token এই তিনটি প্যারামিটার প্রেরন করেন API তে, কিন্তু এক্ষেত্রে  smsdata এবং token এই দুইটি প্যারামিটার  পোস্ট ম্যাথেডে পাঠাতে হবে,  ম্যাসেজটি অবশ্যই urlencode করতে হবে । 

Live preview:http://jsfiddle.net/greenwebbd/hp2Lr460/embedded/result 
Code:http://jsfiddle.net/greenwebbd/hp2Lr460/embedded/html

Parameters:
token = Generate from above link
smsdata = valid json data containing to and message text
নিচের php code এ স্যাম্পলটি দেখুন:

<?php
  $url = "https://api.greenweb.com.bd/api.php?json";
  $data = [
    "token" => "your token here",
    "smsdata" => json_encode( 
	[
      [
        "to" => "88017xxxxxxxx",
        "message" => "testsms one"
      ],
      [
        "to" => "88018xxxxxxxx",
        "message" => "বাংলা এসএমএস"
      ]
    ], 
	JSON_UNESCAPED_UNICODE)
  ];
  
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_ENCODING, '');
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  $response = curl_exec($ch);
 
  //response
  echo $response;
?>
আপনি সরাসরি উপরের ফরম্যাটে ডেটা সেন্ড করতে পারবেন তবে আমরা এখানে কমন একটি পদ্ধতি দেখাবো । এ ক্ষেত্রে ফরম্যাট এর কাজটা আমরা programatically করবো । এর ফলে এটি শুধু যে ডেটাবেজ এ কাজ করবে তা না সকল ধরনের লু্পে কাজ করবে । এভাবে আপনি কয়েক সেকেন্ড হাজার হাজার ডাইনামিক SMS একসাথে প্রসেস করে আমাদের সার্ভারে প্রেরন করতে পারবেন । এতে আপনার ওয়েব সার্ভারে কম লোড পরবে । এক্ষেত্রে দুটি প্যারামিটার সাবমিট করতে হবে:
১. token: টোকেন
২. smsdata: JSON Formatted ডেটা ।
মনে রাখবেন ডেটাবেজ থেকে ডেটা নিলে অথবা যেকোনো ডেটাই ম্যাসেজে দিন না কেন অবশ্যই rawurlencode() ফাংশন ব্যবহার করে encode করে নিবেন ।


<?php 
$json_smsdata = [];

// প্রথমে আপনার সুবিধে মত করে loop এ ডেটাবেজ হতে ডেটা নিন অথবা অ্যাপ্লিকেশনের ইনপুট থেকে ডেটা নিন । ডেটাটি এরপর loop ব্যবহার করে ফরম্যাট করুন: এখানে while loop দেখানো হয়েছে আপনারা foreach loop ব্যবহার করতে পারেন । 

$dblink = mysqli_connect("localhost", "dbusername", "dbpassword", "dbname");
/* If connection fails throw an error */
if (mysqli_connect_errno()) {
    echo "Could  not connect to database: Error: ".mysqli_connect_error();
    exit();
}

//চাইলে LIMIT দিয়ে  ৫০০ এসএমএস একসাথে ডেটাবেজ থেকে যাবে এমন লিমিট করে নিতে পারেন ।
$sqlquery = "SELECT name,number FROM table_name";
if ($result = mysqli_query($dblink, $sqlquery)) {
    /* fetch associative array */
    while ($row = mysqli_fetch_assoc($result)) {
       $name = $row["name"];
       $number = $row["number"];

// আমরা উপরে loop করে ডেটাবেজ থেকে name এবং number কলামের ডেটা নিলাম, এখন dynamic ম্যাসেজ লিখুন rawurlencode() funtion must use করতে হবে
$message = rawurlencode("Hi $name,
your message 
Regards
bdsms.net
");

$json_smsdata[]= ['to'=>$number,'message'=>$message];
	  }
	  
}

$smsdata = json_encode($json_smsdata);

// $smsdata হলো আমাদের কাংখিত format করা ডেটা যা এখন সেন্ড করা হবে । 

			
			//এবার এসএমএস প্রেরন করুন নিচে শুধু টোকেন বদল করবেন
$token = "yourtokenhere_xxxxxxxxxxxxxxxxxxx";
$smsdata = $smsdata;

$url = "https://api.greenweb.com.bd/api.php";


$data= array(
'smsdata'=>"$smsdata",
'token'=>"$token"
); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$smsresult = curl_exec($ch);

//Result
echo $smsresult;

//Error Display
echo curl_error($ch);
?>
			
এটি শুধুমাত্র PHP Session ব্যাজড OTP এর জন্য, যা এক বা একাধিক পেজকে সিকিউর করতে সাহায্য করবে । তবে এটি শুধুই স্যাম্পল কোড এর পরিবর্তন কিংবা আধুনিকরন আপনাকেই করতে হবে । গ্রিনওয়েব এ ব্যাপারে সাহায্য করবে না । যে কোনো সমস্যা হলে আপনি আপনার ডেভোলপার এর সাথে কথা বলুন, এটি শুধু মাত্র প্রোগ্রামারদের কে একটা ধারনা প্রদানের জন্য, কিভাবে এপিআই কাজ করতে পারে । তাই যাদের প্রোগ্রামিং এ দক্ষতা আছে তাদের ধারনা প্রদানের জন্য । আপনার ওটিপি সিস্টেমে সিকিউরিটি নিশ্চিত করতে গুগল রিক্যাপচা এবং CSRF Protection ব্যবহার করুন, এছাড়াও প্রতি ৩০ সেকেন্ডে একটি ওটিপি প্রেরন করা যাবে এবং সর্বোচ্চ Xটি ওটিপি রিকোয়েস্টে করা যাবে এমন পদ্ধতি তৈরি করবেন । অন্যাথায় ওটিপি সিস্টেম অ্যাবিউজ হতে পারে । Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token

<?php

    <?php
  // Start the session
  session_start();
  //give your token here
  $token = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
  
  
  
function GetRealUserIp($default = NULL, $filter_options = 12582912) {
	$HTTP_CLIENT_IP = "";
    $HTTP_X_FORWARDED_FOR =  $_SERVER["HTTP_X_FORWARDED_FOR"];
	if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $HTTP_CLIENT_IP = $_SERVER['HTTP_CLIENT_IP']; }
    $HTTP_CF_CONNECTING_IP = $_SERVER["HTTP_CF_CONNECTING_IP"];
    $REMOTE_ADDR = $_SERVER["REMOTE_ADDR"];

    $all_ips = explode(",", "$HTTP_X_FORWARDED_FOR,$HTTP_CLIENT_IP,$HTTP_CF_CONNECTING_IP,$REMOTE_ADDR");
    foreach ($all_ips as $ip) {
        if ($ip = filter_var($ip, FILTER_VALIDATE_IP, $filter_options))
            break;
    }
    return $ip?$ip:$default;
}

$ip = GetRealUserIp();  
  
  
  
echo "<center>";
if (isset($_POST['code'])) { 

//csrf protection
if (($_SESSION["csrftoken"]) != ($_POST['csrftoken'])) {
echo "OTP Abuse detected ! Please refresh the page and try again !";	
	exit();
}

  //check for matching
  if ($_SESSION["otp"] == $_POST['code']) {
  echo "You have verified your mobile number successfully</br>";
  $_SESSION['verified'] = "1";
  //ওটিপি রিকোয়েস্ট লিমিট রিসেট করে দেওয়া হলো ।
  $_SESSION[$ip] = "0";
 
} else {
  echo "You have entered wrong otp code, try again later.";
  }
}



if ((isset($_SESSION['verified'])) AND ($_SESSION['verified'] == '1')) {

//you can post your page content here  or below the page.


} else {

if(isset($_POST['otp'])) {
//check csrf for protection if (($_SESSION["csrftoken"]) != ($_POST['csrftoken'])) { echo "OTP Abuse detected ! Please refresh the page and try again !"; exit(); } else { $csrftoken = $_POST['csrftoken']; } // দেখুন কতবার একটি আইপি থেকে ওটিপি রিকোয়েস্ট করা হয়েছে কিন্তু ভেরিফাই করা হয়নি । এখানে প্রতি session এ 5 বার maximum ওটিপি রিকোয়েস্ট করা যাবে । 5 বার ওটিপি প্রেরন করে একবারও যদি ভেরিফাই না করে তবে পূনরায় ওটিপি রিকোয়েস্ট করা যাবে না । অনেকে বার বার unknown নাম্বারে ওটিপি রিকোয়েস্টে দিয়ে মানুষকে বিরক্ত করতে পারে /আপনার SMS ব্যালেন্স শেষ করতে পারে, এটি তা prevent করবে । চাইলে লিমিট বাড়াতে কিংবা কমাতে কিংবা এটি বাদ দিতে পারেন । তবে নিরাপত্ত্বার জন্য লিমিট রাখা ভালো । চাইলে ডেটাবেজ ব্যবহার করে লিমিট করতে পারেন, টাইম দিয়ে লিমিট করতে পারেন । if ($_SESSION[$ip] > "5") { echo "You're allowed to request otp for 5 times per session ! Your request is blocked."; exit(); } // Generate Random 5 digits otp $code = substr(md5(mt_rand()), 0, 5); //send otp to mobile via api $to = preg_replace("|[^0-9 \+\/]|", '', $_REQUEST['number']); //message text $message = "আপনার ওটিপি কোড: $code XYZ কোম্পানী"; $url = "http://api.greenweb.com.bd/api.php"; $data= array( 'to'=>"$to", 'message'=>"$message", 'token'=>"$token" ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_ENCODING, ''); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $smsresult = curl_exec($ch); $result = mb_substr($smsresult, 0, 2); if ($result == 'Ok') {
//ওটিপি রিকোয়েস্টের Per IP লিমিট সেট করা হলো if (isset($_SESSION[$ip])) { $_SESSION[$ip] = ($_SESSION[$ip] + 1); } else { $_SESSION[$ip] = "1"; } echo "Otp code is successfully sent to your mobile, you may have to wait upto 5 min to receive your code";
// save otp code on the session $_SESSION["otp"] = $code;
//show code input form echo " Enter the verification code below </br> <form action='' method='POST'> <input type='text' name='code'> <input type='hidden' name='csrftoken' value='$csrftoken' > <button type='submit' value='code' name='otp'>Verify</button> </form>"; exit(); } else { echo "Failed to send Otp. Please try again after sometime"; exit(); } } else { //generate csrf token it's require to protect your otp sms form from the abusers $csrftoken = substr(md5(mt_rand()), 0, 15); $_SESSION["csrftoken"] = $csrftoken; echo " Enter your mobile number to receive OTP code </br> <form action='' method='POST'> <input type='text' name='number'> <input type='hidden' name='csrftoken' value='$csrftoken' > <button type='submit' value='otp' name='otp'>Get Otp</button> </form>"; exit(); }
//it's not required but for extra safety exit(); } ?>
উপরে প্রদত্ত কোডটি যে পেজকে সিকিউর করতে চান অর্থাৎ যে পেজের কনটেন্ট দেখার জন্য ইউজারকে প্রথমে মোবাইল নাম্বার দিতে হবে, এরপর কোড দিয়ে ভেরিফিকেশন করতে হবে সেই পেজ এডিট করে একদম উপরে পেস্ট করে দিন । আপনার ইউজার ওটিপি দিয়ে ভেরিফিকেশন কমপ্লিট করার পরই শুধুমাত্র সিকিউর কনটেন্ট দেখতে পারবে । এটি মডিফাই করে নিজের প্রয়োজন অনুযায়ী যেকোনো PHP পেজে বসাতে পারবেন । অবশ্যই গুগল রিক্যাপচা সিকিউরিটির জন্য ব্যবহার করবেন ।

কিভাবে পাঠাবেন গুগল স্প্রেডশীট থেকে?

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token

function myFunction(sms){

var to = "016150505xx";
var row = 1; //grab cell data from row 1 
var col = 1; //grab cell data from column 1

var gwcelldata = SpreadsheetApp.getActiveSheet().getRange(row, col).getValue(); //get active sheet data

var sms = encodeURI("Test Message"+gwcelldata);
var url = "https://sms.greenweb.com.bd/api.php?token=yourtokenhere&to="+to+"&message="+sms+"&submit";
var response = UrlFetchApp.fetch(url);
Logger.log(response);
}
	
	
For more information check: https://developers.google.com/apps-script/reference/spreadsheet/sheet

কিভাবে এসএমএস পাঠাবেন asp Classic (.asp পেজ) থেকে?

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token
নিচের কোডটি sms.asp নামে সেভ করতে পারেন কিংবা প্রোজেক্টে ব্যবহার করতে পারেন, msg এ রিসপন্স পাবেন ।

<% 
        apiurl = "http://api.greenweb.com.bd/api.php?"
        message = "Hello World"
        message = Server.urlencode(message)
        mobile = "017xxxxx,016xxxxx"
        '11 digit number
        url = apiurl & "token=" & token & "&to=" & mobile & "&message=" & message
        set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
        xmlhttp.open "POST", url, false
        'use GET for get method
        xmlhttp.send ""
        msg = xmlhttp.responseText
        response.write(msg)
        set xmlhttp = nothing
    %>
		

কিভাবে এসএমএস পাঠাবেন C# ব্যবহার করে? Example 1(recommended)

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token
Test this code: http://volatileread.com/utilitylibrary/snippetcompiler?id=117220

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;

namespace GreenwebBDAPI{
    class Program{
        static void Main(string[] args){
        string result = "";
            WebRequest request = null;
            HttpWebResponse response = null;
            try{
                String to = "016xxxxxxxx,017xxxxx"; //Recipient Phone Number multiple number must be separated by comma
                String token = "entertokencodehere"; //generate token from the control panel
                String message = System.Uri.EscapeUriString("my messages"); //do not use single quotation (') in the message to avoid forbidden result
                String url = "http://api.greenweb.com.bd/api.php?token=" + token + "&to=" + to + "&message=" + message;
                request = WebRequest.Create(url);
            
                // Send the 'HttpWebRequest' and wait for response.
                response = (HttpWebResponse) request.GetResponse();
                Stream stream = response.GetResponseStream();
                Encoding ec = System.Text.Encoding.GetEncoding("utf-8");
                StreamReader reader = new
                System.IO.StreamReader(stream, ec);
                result = reader.ReadToEnd();
                Console.WriteLine(result);
                reader.Close();
                stream.Close();
            } catch (Exception exp){
                Console.WriteLine(exp.ToString());
            } finally {
                if (response != null)
                    response.Close();
            }
        }
    }
}
	

কিভাবে এসএমএস পাঠাবেন C# ব্যবহার করে? Example 2

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token

using System.Net.Http;

Setup:

It is recommended to instantiate one HttpClient for your application's lifetime and share it.

private static readonly HttpClient client = new HttpClient();

POST:

var values = new Dictionary
{
   { "token", "yourtokenhere" },
   { "to", "016xxxxxxxxx" },
{ "message", "test" }
};

var content = new FormUrlEncodedContent(values);

var response = await client.PostAsync("http://api.greenweb.com.bd/api.php?", content);

var responseString = await response.Content.ReadAsStringAsync();
	

কিভাবে এসএমএস পাঠাবেন C# ব্যবহার করে? Example 3

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token

Newer library sporting a fluent API and testing helpers. HttpClient under the hood. Portable. Available via NuGet.

using Flurl.Http;

POST

var responseString = await "http://api.greenweb.com.bd/api.php?"
    .PostUrlEncodedAsync(new { token = "yourtokencodehere", to = "015xxxxxxx", message = "my message" })
    .ReceiveString();
	

কিভাবে এসএমএস পাঠাবেন android থেকে?

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token


String token = "YourTokenCodeHere";

//Single or Multiple mobiles numbers separated by comma
String to = "017xxxxxxxxx,016xxxxxxx";

//Your message to send, Add URL encoding here.
String textmessage = "my message is here";

URLConnection myURLConnection=null;
URL myURL=null;
BufferedReader reader=null;

//encode the message content
String encoded_message=URLEncoder.encode(textmessage);
String apiUrl="http://api.greenweb.com.bd/api.php?";

StringBuilder sgcPostContent= new StringBuilder(apiUrl);
sgcPostContent.append("token="+token);
sgcPostContent.append("&to="+to);
sgcPostContent.append("&message="+encoded_message);

apiUrl = sgcPostContent.toString();
try
{
    //prepare connection
    myURL = new URL(apiUrl);
    myURLConnection = myURL.openConnection();
    myURLConnection.connect();
    reader= new BufferedReader(new InputStreamReader(myURLConnection.getInputStream()));

    //read the output
    String output;
    while ((output = reader.readLine()) != null)
    //print output
    Log.d("OUTPUT", ""+output);

    //Close connection
    reader.close();
}
catch (IOException e)
{
    e.printStackTrace();
}
	

কিভাবে এসএমএস পাঠাবেন VB.NET থেকে ?

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token

 Imports System.Web
    Imports System.IO
    Imports System.Net
    Imports System.Text
    Imports System.Resources
    
    Public Class greenwebApi
     
        Public Function greenwebApi()
            Dim token = "YourTokenCodeHere"
          
            Dim message = "Hello World"
            Dim mobile = "017xxxxxxxx"
            Dim url As String = "http://api.greenweb.com.bd/api.php?"
            Dim strPost As String
           
            strPost = url + "token=" + token _
            + "&to=" + mobile _
            + "&message=" + WebUtility.UrlEncode(message) 
            
            Dim request As WebRequest = WebRequest.Create(strPost)
            request.Method = "POST"
            Dim byteArray As Byte() = Encoding.UTF8.GetBytes(strPost)
            request.ContentType = "application/x-www-form-urlencoded"
            request.ContentLength = byteArray.Length
            Dim dataStream As Stream = request.GetRequestStream()
            dataStream.Write(byteArray, 0, byteArray.Length)
            dataStream.Close()
            
            Dim response As WebResponse = request.GetResponse()
            dataStream = response.GetResponseStream()
            Dim reader As New StreamReader(dataStream)
            Dim responseFromServer As String = reader.ReadToEnd()
            Console.WriteLine(responseFromServer)
            Console.ReadLine()
            
            reader.Close()
            dataStream.Close()
            response.Close()
            
            If responseFromServer.Length > 0 Then
                Return responseFromServer
            Else
                Return CType(response, HttpWebResponse).StatusDescription
            End If
        End Function
    End Class

	

কিভাবে এসএমএস পাঠাবেন Visual Basic 6 থেকে ?

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token
Download Sample Project: https://bdbulksms.net/download/vb6.zip

 Private Sub Command1_Click()

    Dim DataToSend As String
    Dim objXML As Object
    Dim message As String
    Dim token As String
    Dim smsto As String
    Dim URL As String

'Set Your Token Here. Generate it from the control panel
token = "xxxxxxxxxxxxxxxxxxxx"

'set/declare your recipient number here
smsto = "01xxxxxxxxxxx"

'Set your Message here
message = URLEncode(" Hello World This is Greenweb BD ")

' do not change anything below
URL = "http://api.greenweb.com.bd/api.php?"

Set objXML = CreateObject("Microsoft.XMLHTTP")
objXML.Open "POST", URL, False
objXML.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

objXML.send "token=" + token + "&to=" + smsto + "&message=" + message

'response box start, You can remove the response code from here
 If Len(objXML.responseText) > 0 Then
        MsgBox objXML.responseText

 End If
'response end remove upto this if you want

End Sub

Function URLEncode(ByVal Text As String) As String
    Dim i As Integer
    Dim acode As Integer
    Dim char As String

    URLEncode = Text

    For i = Len(URLEncode) To 1 Step -1
        acode = Asc(Mid$(URLEncode, i, 1))
        Select Case acode
            Case 48 To 57, 65 To 90, 97 To 122
                ' don't touch alphanumeric chars
            Case 32
                ' replace space with "+"
                Mid$(URLEncode, i, 1) = "+"
            Case Else
                ' replace punctuation chars with "%hex"
                URLEncode = Left$(URLEncode, i - 1) & "%" & Hex$(acode) & Mid$ _
                    (URLEncode, i + 1)
        End Select
    Next

End Function


	

কিভাবে এসএমএস পাঠাবেন ORACLE FORM BUILDER / ORACLE থেকে ?

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token
প্রথমে দুইটি টেক্সট আইটেম এবং একটি বাটন তৈরী করুন, টেক্সট আইটেম দুটির নাম দিন TO এবং MESSAGE আর বাটনে ট্রিগার WHEN-BUTTON-PRESSED সিলেক্ট করে নিচের কোড দিন । কোডে টোকেন কোড বদল করে নিবেন ।

 DECLARE
	smsto varchar(5000) := :new.to;
	message varchar(5000) := Utl_Url.escape(:new.message, TRUE);
  req   UTL_HTTP.REQ;
  resp  UTL_HTTP.RESP;
  value VARCHAR2(5024); 
  v_url VARCHAR2(200) := 'http://api.greenweb.com.bd/api.php';
 
  v_param VARCHAR2(5000) := 'token=yourtoken&to=' || smsto || '&message=' || message || '';
  v_param_length NUMBER := length(v_param);
BEGIN
  req := UTL_HTTP.BEGIN_REQUEST (url=> v_url, method => 'POST');
  UTL_HTTP.SET_HEADER (r      =>  req,
                       name   =>  'Content-Type',
                       value  =>  'application/x-www-form-urlencoded');
  UTL_HTTP.SET_HEADER (r      =>   req,
                       name   =>   'Content-Length',
                       value  =>   v_param_length);
  UTL_HTTP.WRITE_TEXT (r      =>   req,
                       data   =>   v_param);  resp := UTL_HTTP.GET_RESPONSE(req);
  LOOP
    UTL_HTTP.READ_LINE(resp, value, TRUE);
    DBMS_OUTPUT.PUT_LINE(value);
  END LOOP;
  UTL_HTTP.END_RESPONSE(resp);
EXCEPTION
  WHEN UTL_HTTP.END_OF_BODY THEN
    UTL_HTTP.END_RESPONSE(resp);
END;

	

কিভাবে এসএমএস পাঠাবেন NodeJS ব্যবহার করে?

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token
পদ্ধতি ১:
নোট: এটি ব্যবহারের জন্য অবশ্যই axios ইনস্টল করতে হবে ।

const axios = require('axios');

const greenwebsms = new URLSearchParams();
greenwebsms.append('token', 'yourtokenhere');
greenwebsms.append('to', '+88017xxxxxxx');
greenwebsms.append('message', 'test sms');
axios.post('http://api.greenweb.com.bd/api.php', greenwebsms).then(response => {
  console.log(response.data);
});
	
পদ্ধতি ২:

var http = require('http');
var querystring = require('querystring');

var postData = querystring.stringify({
    token: 'your token code here',
    to: '+88017xxxxxxxxx',
    message: 'Test sms using API'
});

var options = {
    hostname: 'api.greenweb.com.bd',
    path: '/api.php',
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': postData.length
    }
};

var req = http.request(options, function (res) {
    
    res.setEncoding('utf8');

    res.on('data', function (chunk) {
        console.log('BODY:', chunk);
    });

    res.on('end', function () {
    });
});

req.on('error', function (e) {
    console.log('Problem with request:', e.message);
});

req.write(postData);
req.end();
	

কিভাবে এসএমএস পাঠাবেন Java ব্যবহার করে?

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token
পদ্ধতি ১:

OkHttpClient client = new OkHttpClient();

RequestBody requestBody = new FormBody.Builder()
        .add("token", "Input your token here")
        .add("to", "+88017xxxxxxx")
        .add("message", "Test sms using API")
        .build();

Request postRequest = new Request.Builder()
        .url("http://api.greenweb.com.bd/api.php")
        .post(requestBody)
        .build();

try {
    Response response = client.newCall(postRequest).execute();
    System.out.println(response.body().string());
} catch (IOException e) {
    e.printStackTrace();
}
	

কিভাবে এসএমএস পাঠাবেন python ব্যবহার করে?

Token Generate করুন : https://sms.greenweb.com.bd/index.php?ref=gen_token

import requests 
greenweburl = "http://api.greenweb.com.bd/api.php"

# your token code here 
token = "XXXXXXXXXXXXXXXXX"

# sms receivers number here (separated by comma) 
to = '+88017xxxxxxx,+88016xxxxxxxx' 

data = {'token':"yourtokenhere", 
		'to':"+88017xxxxxxx,+88016xxxxxxxx", 
		'message':'test sms'} 
 
responses = requests.post(url = greenweburl, data = data) 

# response 
response = responses.text 
print(response) 

	

এসএমএস প্রেরণ বন্ধ হয়ে গেলে অথবা সঠিকভাবে না গেলে নিচের ভিডিও টিউটোরিয়াল দেখে সমাধান করতে পারবেন ।