Skip to content

Instantly share code, notes, and snippets.

@hsyntnc
Last active December 29, 2015 21:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hsyntnc/f6e345a32b16aa6d251b to your computer and use it in GitHub Desktop.
Save hsyntnc/f6e345a32b16aa6d251b to your computer and use it in GitHub Desktop.
layout title date author categories tags
post
Bulutfon ile SMS gönderme uygulaması
2015-12-29 22:53:06 +0800
huseyintunc
introduction
bulutfon
sms
api
curl

Bir çok arkadaşın Bulutfon Api'yi kullanırken problem yaşadığını görüyorum. Yeni başlayan arkadaşlar için fazla programlama bilgisi gerektirmeden apiyi en faydalı şekilde kullanma kılavuzu olabilecek bir yazı dizisine başlamak istedim.

İlk makalemi de buradaki arkadaşın problemi üzerinden yola çıkarak Bulutfon Api'yi kullanarak SMS gönderme üzerine yazmaya karar verdim.

Öncelikle yapacağımız işlemlerden kısaca bahsedelim;

  • SMS detaylarını gireceğimiz formun oluşturulması.
  • Sabit değişkenlerin tanımlanması
  • Formdan gelen verilerin çekilmesi
  • Curl kullanarak Bulutfon üzerinden sms gönderimi

Formun Oluşturulması

<html>
<head>
  <meta charset="UTF-8">
  <title>Bulutfon SMS Gönderme</title>
</head>
<body>
  <!-- Form -->
  <form action="#" method="post">
    <table>
      <tr>
        <td valign="top" width="150">Alıcı Listesi</td>
        <td>
          <input type="text" name="receivers"><br>
          <small>Birden fazla alıcı girmek için araya virgül (,) işareti koyunuz. Lütfen numaraları ülke kodu ile birlikte giriniz ör: 905326203322</small>
        </td>
      </tr>
      <tr>
        <td valign="top">Mesaj</td>
        <td>
          <textarea name="message"></textarea>
        </td>
      </tr>
      <tr>
        <td></td>
        <td><button type="submit">Gönder</button></td>
      </tr>
    </table>
  </form>
</body>
</html>

Numaraların girileceği bir textbox alanı ve mesaj için textarena kullanarak sms gönderim formumuzu oluşturuyoruz. Uygulamamızdaki tüm kodlar en basit haliyle yer almaktadır. Dilerseniz css kullanarak görsel açıdan daha iyi bir form oluşturabilirsiniz. Formumuzu oluşturduktan sonra olayın arkaplanına geçip php kodlarımızı yazmaya başlayabiliriz.

Sabit Değişkenlerin Tanımlanması

<?php 
	/*
	* Bulutfon Api
	* SMS Gönderme
	*/
	$token    = ""; // Bulutfon panelinden alcağınız master token
	$title    = ""; // Bulutfon üzerinden onaylattığınız sms başlığı

Başlangıç olarak kullanacağımız sabit değişkenleri tanımlıyoruz. Buradaki '$token' değişkeni Bulutfon'dan alacağımız master token değeridir. '$title' ise Bulutfon tarafından onaylanmış sms başlığımızdır.

Formdan Gelen Verilerin Çekilmesi

if (@$_POST){ // Formun post edilip edilmediğinin kontrolü
  $receivers    = $_POST['receivers']; // Formdan gelen alıcı listesi
  $message      = $_POST['message']; // Formdan gelen mesaj alanı
  if ($receivers == "" || $message == ""){ // Formdan gelen verilerin boş olup olmadığını kontrol ediyoruz.
    echo "Lütfen tüm alanları doldurunuz.";
  } else {
    // Curl işlemleri yapılacak.
  }
}

Yukarıda ilk olarak '@$_POST' ifadesi ile formun post edilip edilmediğini kontrol ediyoruz. Daha sonra formdan gönderilen verileri alıp değişkenlere atadık ve boş olup olmadıklarını kontrol ediyoruz.

Curl İşlemleri

$ch = curl_init();  // Curl oturumunu başlattık 
curl_setopt($ch,CURLOPT_URL,'https://api.bulutfon.com/messages'); // SMS gönderimi için kullanacağımız api adresi
curl_setopt($ch,CURLOPT_POST, 1); // Burada curl post kullanacagımızı belirttik 1 yerine  true de denebilir
curl_setopt($ch,CURLOPT_POSTFIELDS,'title='.$title.'&access_token='.$token.'&receivers='.$receivers.'&content='.$message); //  Burada ise göndereceğimiz parametreleri belirtiyoruz.
curl_exec($ch); // Curl calıştır.
curl_close($ch); // Curl oturumunu kapat

Son olarak curl ile verileri Bulutfon api adresine post methodu ile gönderiyoruz. Uygulamanın tam kodlarına buraya tıklayarak ulaşabilirsiniz. Faydalı olması dileğiyle.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment