Bulutfon .Net SDK, ASP.NET MVC (4 ve üzeri) ve desktop (WinForms) projelerinin, Bulutfon OAuth ile kimlik doğrulaması (authentication) ve yetki alınması (authorization) işlemleri için gerekli fonksiyonları sağlar.
1- Bulutfon'u nuget ile projenize dahil edin Install-Package Bulutfon.MVC4
2- Geliştirme ve testler için öncelikle projeye https desteği eklenmelidir. Bunun için:
- Projeyi seçip
Propertiespenceresine geçin SSL EnabledıTrueolarak belirleyinSSL URLde https://localhost:44304/ gibi bir adres oluşacaktır, bu adresi kopyalayın- Projeye sağ tıklayıp menüden
Propertiesi seçin - Açılan pencerede soldan
Websayfasını seçin Project URLkısmına kopyalamış olduğunuz adresi yapıştırın
3- OAuth client'lara BulutfonWebClient eklenmelidir. Bunun için:
- App_Start\AuthConfig.cs dosyasını açın
RegisterAuth()metoduna aşağıdaki kodu ekleyin:
TokenRefreshCallback refreshCallback = new TokenRefreshCallback(tokenRefreshed);
BulutfonWebClient client = new BulutfonWebClient(
clientId: "CLIENT_ID_NIZ", // Bulutfon servisindeki uygulamanın Client ID'si
clientSecret: "CLIENT_ID_NIZ", // Bulutfon servisindeki uygulamanın Client Secret'ı
refreshCallback: refreshCallback // Expire olan token refreshlendiğinde tetiklenecek method. Kullanmayacaksanız null değer gönderebilirsiniz.
);
OAuthWebSecurity.RegisterClient(client, "Bulutfon", null); // Token yenilendiğinde tetiklenecek refreshCallback methodu
public static void tokenRefreshed(object sender, string access_token, string refresh_token) {
// Do something
}4- Bulutfon API'sine erişim
- Örneğin mesaj (SMS) listesini çekmek için:
HomeControlleriçinde aşağıdaki metodu oluşturun:
[Authorize]
public ActionResult Messages() {
var messages = BulutfonApi.GetMessages((Token)Session[Token.Key]);
return View(messages);
}View'u oluşturmak için ise:- Metot ismi üzerine sağ tıklayıp menüden
Add View...'u seçin Create a strongly-typed viewu işaretleyinModel classolarakMessage (Bulutfon.Sdk.Models)seçinScaffold templateolarakList'i seçinAdd'e tıklayın 5- Bulutfon sitesindeki uygulama ayarlarından redirect uri kısmını güncelleyin (https://localhost:44304/Account/ExternalLoginCallback gibi bir adres olması gerektir)
- Metot ismi üzerine sağ tıklayıp menüden
1- Bulutfon'u nuget ile projenize dahil edin Install-Package Bulutfon.OAuth.Win
2- Login olmak için ilgili düğme ya da menünün koduna aşağıdaki satırları ekleyin:
var loggedIn = LoginForm.Login(
"CLIENT_ID_NIZ", // Bulutfon servisindeki uygulamanın Client ID'si
"CLIENT_SECRET"), // Bulutfon servisindeki uygulamanın Client Secret'ı
this); // ya da null3- Verilere erişmek için gene BulutfonApi metotlarından yararlanabilirsiniz. Örneğin:
if (loggedIn) {
//button1.Enabled = false;
dataGridView1.DataSource = BulutfonApi.GetDids(Authentication.Token);
}4- Bulutfon sitesindeki uygulama ayarlarından redirect uri kısmını güncelleyin (urn:ietf:wg:oauth:2.0:oob)
5- Token expire olduğunda otomatik yenilenecektir. Bu eventı yakalayıp yeni tokenlara erişmek istiyorsanız. Token alındıktan sonra aşağıdaki kodu ekleyebilirsiniz.
{
if (loggedIn) {
//button1.Enabled = false;
Authentication.Token.RefreshCallback += TokensRefreshed;
dataGridView1.DataSource = BulutfonApi.GetDids(Authentication.Token);
}
}
void TokensRefreshed(object sender, string access_token, string refreh_token)
{
}BulutfonApi statik sınıfı dahilinde, hem web (MVC), hem de WinForms ve diğer .NET projeleri içinde kullanılacak tüm API fonksiyonları mevcuttur.
Örneğin mesajlar (SMS) için,
- Mesaj listesi:
GetMessages(/*token*/); - Mesaj detayları:
GetMessage(id, /*token*/); - Mesaj gönderimi:
SendSms(/*...*/); - vb.
Telif Hakkı (c) 2015, Bulutfon Telekomünikasyon A.Ş.
Bu yazılım MIT lisansı ile dağıtılmaktadır. http://opensource.org/licenses/MIT