Merhaba arkadaşlar;

Bugün sizlere C# ile sms göndermek için Bulutfon SMS API’yi nasıl kullanacağınızı göstereceğim.

Öncelikle bu işlemi gerçekleştirmek için bir bulutfon hesabınız, onaylı bir sms başlığınız ve sms göndermek için krediniz olması gerektiğini unutmayın.

API Anahtarı edinme

İlk yapmamız gereken işlem Bulutfon panelinden bir API anahtarı olmak olacak. Bunun için, panele girdikten sonra Ayarlar altında API Kullanıcıları bölümünden yeni bir kullanıcı oluşturabilirsiniz. Detaylı bilgi için aşağıdaki görseli inceleyebilirsiniz.

Bulutfon API V2 Token alma
Api anahtarınızı alma

Bulutfon API SMS Endpointi

Anahtarımızı oluşturduktan sonra kod örneğimize geçmeden önce bahsetmem gereken bir kaç detay var. Göndereceğimiz içerik application/json formatında olmalıdır. Göndereceğiniz alanlar ile ilgili daha detaylı bilgiyi aşağıdaki görselde bulabilirsiniz.

Bulutfon API SMS göndermek için eklenmesi gereken parametreler
Post edilirken gönderilecek alanlar ve açıklamaları

C# ile SMS gönderimi

Haydi başlayalım kod yazmaya;

Url ve api anahtarımızı değişken olarak tanımlayalım. İsterseniz url de parametre olarak verebilirsiniz fakat ben isteğin header bölümüne ekleyeceğim.

var url = "https://api.bulutfon.com/v2/sms/messages";
var apikey = "api anahtarınız";

Daha sonra göndereceğimiz içeriği tanımlayalım.

var json = new JavaScriptSerializer().Serialize(new
            {
                title = "", // Bu başlık panelde bulunan sms başlığı ile aynı olmalıdır.
                content = "Test içerik",
                receivers = new List<string>() {
                        "" // Göndereceğiniz telefon numarası.
                    },
                reject_link = false
            });

var data = Encoding.UTF8.GetBytes(json);

Şimdi ise request değişkenimizi oluşturup özelliklerini belirtelim.

var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = data.Length;
request.Headers.Add("apikey", apikey);

using (var stream = request.GetRequestStream())
   stream.Write(data, 0, data.Length);

Son olarak dönen değeri alalım ve ekrana yazdıralım.

var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
Console.WriteLine(responseString);

API size 3 tip durum kodu döndürecektir. 201, 400 ve 401 olarak. 201 kodu dışındaki yanıtın içinde sadece error değişkeni olacaktır. 201 kodunun içeriği ise aşağıdaki gibidir;

Bulutfon API SMS gönderdikten sonra geriye döndürdüğü değerler

Not: Bunlar dışında 422 durum kodu dönebilir. Bu durum kodu döndüğünde lütfen sms başlığının doğruluğundan emin olun.

Not 2: Örneği hazırlarken 3.parti bir kütüphane kullanmamaya özen gösterdim. Bu örnekte bulunan sınıfların hepsi .NET framework içinde mevcuttur.

Not 3: Visual Studio ortamı dışında bir text editör kullanan arkadaşlar için aşağıda usingleri paylaşıyorum.

using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using System.Web.Script.Serialization;

Bütün kodları aşağıda tek bir seferde görebilirsiniz.

using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using System.Web.Script.Serialization;

namespace BulutfonSMSAPI
{
    class Program
    {
        static void Main(string[] args)
        {
            var url = "https://api.bulutfon.com/v2/sms/messages";
            var apikey = "api keyiniz";

            var json = new JavaScriptSerializer().Serialize(new
            {
                title = "TUNC",
                content = "Test içerik",
                receivers = new List<string>() {
                        "" // Göndereceğiniz telefon numarası.
                    },
                reject_link = false
            });

            var data = Encoding.UTF8.GetBytes(json);

            var request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.ContentType = "application/json";
            request.ContentLength = data.Length;
            request.Headers.Add("apikey", apikey);

            using (var stream = request.GetRequestStream())
                stream.Write(data, 0, data.Length);

            var response = (HttpWebResponse)request.GetResponse();

            var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

            Console.WriteLine(responseString);
            Console.ReadLine();
        }
    }
}

İyi çalışmalar.

Yazar

Yorum Yap