Api kullanımı hakkında


#1

merhabalar,
ben c# asp.net ile bulutfon apisini kullanmak istiyorum.
uygulama oluşturulmalı sonrasında tokenlerle istek yapmalıyız vb.
benim istediğim aslında bu apiyi en basic haliyle kullanmak yani göndereceğim numaraya arayıp ses kaydı dinletmek.

sizlerden ricam yapmak istediğim bu işlem için
adım adım bana işlem sırasını yazabilecek bir arkadaş varmıdır. hatta kod örnekleri varsa çok çok sevinirim.

şimdiden yardımlarınıza çok tşk ederim.
iyi çalışmalar…


#2

Fatih Bey Merhaba,

Bunu işlemi en basit aşağıdaki şekilde yapabilirsiniz.

  1. OAuth2’yi kullanmanıza gerek yok. Doğrudan API Tekil anahtarınızı alabilirsiniz. Detaylar için https://github.com/bulutfon/documents/tree/master/API#master-token-kullanarak-istek-yapmak adresine bakabilirsiniz.

  2. Otomatik Arama endpointi olan POST https://api.bulutfon.com/automatic-calls.json?access_token=xxx adresine aşağidaki verileri POST edersiniz.

  • title: Otomatik arama başlığı
  • receivers: Otomatik aramanın alıcıları (birden fazla alıcı var ise virgül ile ayırarak gönderilmelidir)
  • did: Otomatik aramanın gönderileceği santral numarası
  • announcement_id: Aranınca çalınacak ses dosyasının id’si
  • sound_url: Aranınca çalınacak ses dosyasının url’i
  • bulutfon_xm_id: Aranınca aktarılacak BulutfonXM id’si
  • timeout Telefonun çalma süresini belirtir (0 - 60sn arası)

NOT: announcement_id, sound_url ve bulutfon_xm_id den sadece biri gönderilmelidir.

  1. Sonuçları ise GET https://api.bulutfon.com/automatic-calls.json adresinden alabilirsiniz.

Aşağıdaki dokümanda daha detaylı olarak anlatılmıştır. C# bilmediğim için nasıl uyarlanır bilmiyorum. C#'da POST ve GET istek yapmak gerekiyor. Örnek bir blog yazarsanız seve seve paylaşırız.

Sevgiler.


#3

ilginize tşkler onur bey,
yalnız 2 sorum daha olacaktı.
birincisi sizin dediğiniz

did: Otomatik aramanın gönderileceği santral numarası
hangi numaradır.

birde dökümanda bulutfon yönetim ekranında -> uygulamalar-> api uygulamları
işlemi yapılmalı deniyor. bunu yapmalımıyız. yapılacaksa nasıl yapmalıyım. ne doldurmalıyım.

aslında ben çalışma mantığını tam olarak anlamadığımdan belkide bu tarz sorular soruyorum. bu tarz santral vb. işlerle daha önce uğraşmamıştım. kusura bakmayın tekrar.

tekrar tşk ederim. iyi akşamlar.


#4

Merhaba,

Bulutfon’dan aldığınız 850, 212, 216 gibi numaradır. Sistemde kayıtlı olan numaraları panelinizden AYARLAR > SANTRAL NUMARALARI menusunden https://app.bulutfon.com/account/dids adresinden görebilirsiniz.

Basitçe söyle anlatayım. Misal 3 numaranız var. Hangi numaradan otomatik arama yapılacak, karşi taraf hangi numaradan aranacak gibi düşünebilirsiniz.


#5

bu sorumuda cevaplarsanız sizi uzun süre rahatsız etmemiş olacağım diye umuyorum :slight_smile:


#6

Merhaba,

Hiç bir şey yapmanıza gerek yok. Uygulamalar > API Uygulamaları sayfasında API Tekil Anahtarınızı görebilirsiniz. https://app.bulutfon.com/oauth/applications adresine girersiniz sayfanın en üstundedir.

Tekil Api Anahtarınız: 72deefd7a8824877f4417b89c45wqrqw7fa1ead60250b5d77444d85000a81a272

gibi uzun bir anahtardır. Bunu endpointlerin sonuna aşağıdaki gibi eklemeniz gerekiyor.

https://api.bulutfon.com/automatic-calls.json?access_token=72deefd7a8824877f4417b89c45wqrqw7fa1ead60250b5d77444d85000a81a272

abii benim paylaştığım gerçek bir API anahtarı değil. Siz kendinizinkini panelinizden Uygulamalar > API Uygulamaları menüsünden bulabilirsiniz.

Kolay gelsin.


#7

onur bey tekrar merhaba ben aşağıdaki gibi deneme yaptım ama hata almaktayım.

Additional information: The remote server returned an error: (422) Unprocessable Entity

token ve tlf numaraları değiştirilmiştir.

yardımcı olmanız dileğiyle,

string serviceUrl = null;

        serviceUrl = "https://api.bulutfon.com/automatic-calls.json?access_token=xxx";

        List<int> ListKullaniciID = new List<int>();
        ListKullaniciID.Add(1934);

        object input = new
        {
            title = "deneme",
            receivers = "05555555",
            did = "908505555555",
            sound_url = "https://xxx/sounds/30.mp3",
            timeout = 40
        };

        string inputJson = (new JavaScriptSerializer()).Serialize(input);

        HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(new Uri(serviceUrl));
        httpRequest.Accept = "application/json";
        httpRequest.ContentType = "application/json";
        httpRequest.Method = "POST";

        byte[] bytes = Encoding.UTF8.GetBytes(inputJson);

        using (Stream stream = httpRequest.GetRequestStream())
        {
            stream.Write(bytes, 0, bytes.Length);
            stream.Close();
        }

        using (HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse())
        {
            using (Stream stream = httpResponse.GetResponseStream())
            {
                string ss = (new StreamReader(stream)).ReadToEnd();
                MessageBox.Show(ss);
            }
        }

#8

@akyolfatih merhaba,

Benim gördüğüm tek hata aranacak numaraların E164 standartında olmaması. 0532 gibi değilde 90532 gibi başına 90 koyarak bir daha deneyebilir misiniz?

422’nin anlamı POST edilen parametrelerde bir hata olduğudur.

.NET bilen arkadaşlar (@hamitturkukaya :slight_smile: ) daha doğru yönlendirme yapabilir.

Kolay gelsin.


#9

dediğiniz gibi düzelttim sorun yok.
ilginize tekrar çok tşk ederim.


#10

Çok sevindim. Sizlerden rica etsem boş vaktinizde C# ile kullanımı için örnek bir kod bloğu ve anlatım alabilir miyiz? Soran geliştirici arkadaşlar olursa onlarla paylaşırız.


#11

onur bey merhaba, ben sadece automatic-call servisini kullanacağımdan şimdilik bu kadar kod bloğu gönderiyorum ama ileride diğer servisleride kullandıkça ki kullanacağım(arama logları vb) tekrar dan buradan paylaşırım. şimdilik bu kadar :slight_smile:

        string serviceUrl = null;

        serviceUrl = "https://api.bulutfon.com/automatic-calls.json?access_token=xxx";

        object input = new
        {
            title = "deneme",
            receivers = "905555555",
            did = "908505555555",
            announcement_id = "",
            sound_url = "https://xxx.net/sounds/deneme.mp3",
            bulutfon_xm_id="",
            timeout ="40"
        };

        string inputJson = (new JavaScriptSerializer()).Serialize(input);

        HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(new Uri(serviceUrl));
        httpRequest.Accept = "application/json";
        httpRequest.ContentType = "application/json";
        httpRequest.Method = "POST";

        byte[] bytes = Encoding.UTF8.GetBytes(inputJson);

        using (Stream stream = httpRequest.GetRequestStream())
        {
            stream.Write(bytes, 0, bytes.Length);
            stream.Close();
        }

        using (HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse())
        {
            using (Stream stream = httpResponse.GetResponseStream())
            {
                string ss = (new StreamReader(stream)).ReadToEnd();
                MessageBox.Show(ss);

                //dönen json string
                //{"success":true,"message":"Automatic Call registered","data":{"id":432677,"title":"deneme","domain_id":4765,"did_id":7110,"announcement_id":null,
                //"log":true,"mon_active":true,"mon_start":"2000-01-01T09:00:00.000Z","mon_finish":"2000-01-01T18:00:00.000Z","tue_active":true,
                //"tue_start":"2000-01-01T09:00:00.000Z","tue_finish":"2000-01-01T18:00:00.000Z","wed_active":true,"wed_start":"2000-01-01T09:00:00.000Z",
                //"wed_finish":"2000-01-01T18:00:00.000Z","thu_active":true,"thu_start":"2000-01-01T09:00:00.000Z","thu_finish":"2000-01-01T18:00:00.000Z",
                //"fri_active":true,"fri_start":"2000-01-01T09:00:00.000Z","fri_finish":"2000-01-01T18:00:00.000Z","sat_active":true,"sat_start":"2000-01-01T09:00:00.000Z",
                //"sat_finish":"2000-01-01T18:00:00.000Z","sun_active":true,"sun_start":"2000-01-01T09:00:00.000Z","sun_finish":"2000-01-01T18:00:00.000Z",
                //"created_at":"2018-04-19T09:32:25.946+03:00","updated_at":"2018-04-19T09:32:25.946+03:00","hours_active":false,"archived":false,"archived_at":null,
                //"sound_url":"https://xxx.net/sounds/deneme.mp3","announcement_removed_at":null,"destination_type":null,"custom_pbx_id":null,"timeout":40,
                //"additional_data":null}}

                dynamic data = Newtonsoft.Json.JsonConvert.DeserializeObject(ss);
                MessageBox.Show(data.success.ToString());
                if (data.success.ToString() == "true")
                { 
                 // yapılacak işlemler
                }

            }
        }