Windows Azure Mobile Services serisine kaldığımız yerden tüm hızıyla devam ediyoruz. Diyelim ki bir scheduler tanımladınız ve belirli aralıklarla bir servisten veri çekip tablolarınızı besliyorsunuz. İlerleyen zamanlarda bir hata çıkıyor ve tablolarınızın güncel olmadığını farkediyorsunuz. Belki de bunu farketmek bile birkaç gününüzü alabiliyor. Doğal olarak bu gibi kritik durumlardan anında haberdar olmak istersiniz ama nasıl? Cevabımız başlıktan da anlaşılacağı üzere sms göndermek :) Scheduler’da herhangi bir hata çıktığında anında size sms olarak bilgi gelse hiç de fena olmaz öyle değil mi?

SMS göndermek için REST API desteği sağlayan Twilio’nun sms servisini kullanabilirsiniz. Öncelikle buradan bir hesap oluşturmanız gerekiyor. Hesap oluşturduktan sonra da ücretsiz 1000 sms atma hakkına sahip oluyorsunuz. Sms gönderme işlemine gelecek olursak sayfadaki REST API dökümanına göre mobile service tarafında aşağıdaki gibi bir HTTP isteği işimizi görecektir.

function MyScheduler() {  
 var req = require('request');
  req.get({
        url: "http://search.twitter.com/search.json",
        qs: {
            q: "azure",
            lang: "en"
        }
    },
    function(error, result, body) {
       if(!error && result.statusCode == 200){
          var json = JSON.parse(body);
          var tweet = json.results[0].text;
          console.log(tweet);          
       }
       else
       {         
          var errorMessage = JSON.parse(body).errors[0].message;
          SendSms(errorMessage);
       }
    });

function SendSms(msg){  
    var request = require('request');
    var from = "%2B" + "<phone number>";    
    var to = "%2B"+ "<phone number>";    
    var message = msg;
    var body = "From=" + from + "&To=" + to +"&Body=" + message;
    var accountSid = "<your account sid>";
    var authToken = "<your authentication token>";
    request.post({
        url: "https://" + accountSid + ":" + authToken + "@api.twilio.com/2010-04-01/Accounts/" + accountSid + "/SMS/Messages.json",
        headers: { 'content-type': 'application/x-www-form-urlencoded' },
        body: body
    }, 
    function (error, response, body) {
        console.log(body);
    });
}}

Yazmış olduğumuz scheduler Twitter API kullanarak içerisinde "azure" kelimesi geçen tweetlerden en sonuncusunu alıp logluyor. Eğer herhangi bir hata oluşursa da ilgili hata mesajını sms atıyor. Yukarıdaki kodu alıp kendiniz denediğinizde hata mesajını sms olarak alacaksınız çünkü kısa bir süre önce Twitter, v1.0 apisini kullanıma kapatmıştı. Bu yüzden yapmış olduğumuz istek hata vererek ilgili hata mesajını bize sms atıyor olacak.

About the Author