Cloudrail - Hızlı Kılavuz

CloudRail, üçüncü taraf API'leri bir uygulamaya entegre etme ve bakımını yapma sürecini hızlandıran bir API entegrasyon çözümüdür. Bunu, benzer hizmetleri ortak bir arayüzün arkasında birleştiren soyutlama katmanları içeren çoklu platformlar için kitaplıklar sağlayarak yapar.

CloudRail - Özellikler

İşte CloudRail'in en önemli özelliklerinden bazılarının listesi -

  • Unified API- CloudRail, birden çok web API'sini tek bir birleşik API'de paketler. Örneğin, işlevupload()Google Drive için olduğu gibi Dropbox için de aynı şekilde çalışır. Sosyal Girişler gibi tüm sağlayıcı kategorilerini kolayca entegre edebilir veya bir sağlayıcıyı tek bir kod satırıyla değiştirebilirsiniz.

  • API Change Management- API'ler her zaman değişir, bu da entegrasyonların bozulmasına, memnun olmayan müşterilere ve daha da fazla geliştirme süresinin boşa harcanmasına yol açar. CloudRail, tüm API'leri izler ve entegrasyonları sürdürür. Değişiklikler hakkında anında bildirim alırsınız ve yapmanız gereken tek şey CloudRail kitaplığını en son sürüme güncellemektir - kod değişikliği gerekmez.

  • API Statistics- Müşterileriniz tarafından en çok hangi API'lerin ve işlevlerin kullanıldığını anlayın. Yeni özellikleri belirlemek veya pazarlama kampanyalarını geliştirmek için ihtiyaç duyduğunuz gerekli bilgileri edinin.

  • Direct Data- Verilerinizin hiçbiri bir CloudRail sunucusunu geçemez. Sistem, barındırılan bir ara yazılım kullanmaz. Tüm veri dönüşümü, Uygulamanıza entegre olan CloudRail kitaplığında gerçekleşir. Bu, veri gizliliği endişesi, kesinti süresi ve ek SPOF olmadığı anlamına gelir.

  • OAuth Made Simple- OAuth kimlik doğrulamaları yapmak bir acıdır. CloudRail, yetkilendirmeleri tek bir kod satırı eklemek kadar basit hale getirir.

CloudRail'in ücretsiz sürümü yalnızca ticari olmayan amaç veya testler için kullanılabilir. Ticari kullanıcılar bir lisans satın almalıdır.

Bu bölüm, CloudRail'in Android SDK'sının nasıl kullanılacağına dair bir giriş sağlar.

Kurmak

Yüklemenin en kolay yolu Maven aracılığıyladır. Android Studio'yu Gradle ile kullanıyorsanız, aşağıdakileri uygulamanıza eklemeniz yeterlidir:build.gradle file -

dependencies {
   compile 'com.cloudrail:cloudrail-si-android:2.8.1
}

Kullanım

Aşağıdaki örnek, yeni bir klasörün nasıl oluşturulacağını ve bir Android uygulamasının varlıklarından herhangi bir bulut depolama sağlayıcısında yeni oluşturulan klasöre nasıl dosya yükleneceğini gösterir.

java
CloudRail.setAppKey("[CloudRail License Key]");

// CloudStorage cs = new Box(context, "[clientIdentifier]", "[clientSecret]");
// CloudStorage cs = new OneDrive(context, "[clientIdentifier]", "[clientSecret]");
// CloudStorage cs = new GoogleDrive(context, "[clientIdentifier]", "[clientSecret]");
CloudStorage cs = new Dropbox(context, "[clientIdentifier]", "[clientSecret]");

new Thread() {
   @Override
   public void run() {
      cs.createFolder("/TestFolder"); // <---
      InputStream stream = null;
      
      try {
         AssetManager assetManager = getAssets();
         stream = assetManager.open("UserData.csv");
         long size = assetManager.openFd("UserData.csv").getLength();
         cs.upload("/TestFolder/Data.csv", stream, size, false); // <---
      } catch (Exception e) {
         // TODO: handle error
      } finally {
         // TODO: close stream
      }
   }
}.start();

Bu bölüm, CloudRail'in Java SDK'sının nasıl kullanılacağına dair bir giriş sağlar.

Kurmak

Yüklemenin en kolay yolu Maven aracılığıyladır. Aşağıdakileri eklemeniz yeterlidir.pom.xml dosya -

<dependencies>
   <dependency>
      <groupId>com.cloudrail</groupId>
      <artifactId>cloudrail-si-java</artifactId>
      <version>2.8.0</version>
   </dependency>
</dependencies>

Kullanım

Aşağıdaki örnek, yeni bir klasörün nasıl oluşturulacağını ve yerel makineden herhangi bir bulut depolama sağlayıcısında yeni oluşturulan klasöre bir dosyanın nasıl yükleneceğini gösterir.

java
CloudRail.setAppKey("[CloudRail License Key]");

// CloudStorage cs = new Box(redirectReceiver, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
// CloudStorage cs = new OneDrive(redirectReceiver, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
// CloudStorage cs = new GoogleDrive(redirectReceiver, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
CloudStorage cs = new Dropbox(redirectReceiver, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
new Thread() {
   @Override
   public void run() {
      cs.createFolder("/TestFolder");
      InputStream stream = null;
      
      try {
         stream = getClass().getResourceAsStream("Data.csv");
         long size = new File(getClass().getResource("Data.csv").toURI()).length();
         cs.upload("/TestFolder/Data.csv", stream, size, false);
      } catch (Exception e) {
         // TODO: handle error
      } finally {
         // TODO: close stream
      }
   }
}.start();

Bu bölüm, CloudRail'in Node.js SDK'sının nasıl kullanılacağına dair bir giriş sağlar.

Kurmak

Yüklemenin en kolay yolu, NPM. Aşağıdaki komutu kullanmanız yeterlidir -

npm install cloudrail-si

Kullanım

Aşağıdaki örnek, yeni bir klasörün nasıl oluşturulacağını ve yerel makineden herhangi bir bulut depolama sağlayıcısında yeni oluşturulan klasöre bir dosyanın nasıl yükleneceğini gösterir.

javascript
const cloudrail = require("cloudrail-si");
cloudrail.Settings.setKey("[CloudRail License Key]");

// let cs = new cloudrail.services.Box(redirectReceiver, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
// let cs = new cloudrail.services.OneDrive(redirectReceiver, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
// let cs = new cloudrail.services.GoogleDrive(redirectReceiver, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");
let cs = new cloudrail.services.Dropbox(redirectReceiver, "[clientIdentifier]", "[clientSecret]", "[redirectUri]", "[state]");

cs.createFolder("/TestFolder", (err) => { // <---
   if (err) throw err;
   let fileStream = fs.createReadStream("UserData.csv");
   let size = fs.statSync("UserData.csv").size;
   
   cs.upload("/TestFolder/Data.csv", fileStream, size, false, (err) => { // <---
      if (err) throw err;
      console.log("Upload successfully finished");
   });
});

Bu bölüm, CloudRail'in iOS SDK'sının nasıl kullanılacağına dair bir giriş sağlar.

Kurmak

Yüklemenin en kolay yolu, CocoaPods. Aşağıdakileri eklemeniz yeterlidir:podfile -

pod "cloudrail-si-ios-sdk"

"Use_frameworks!" bayrak ayarlandı ve çalıştırıldı

Pod install

Kullanım

Aşağıdaki örnekler, Objective-C ve Swift'deki herhangi bir bulut depolama sağlayıcısından bir dosyanın nasıl indirileceğini gösterir.

objective-c
// self.service = [[CROneDrive alloc] initWithClientId:@"clientIdentifier" clientSecret:@"clientSecret" redirectUri:@"REDIRURL" state:@"CRSTATE"];
// self.service = [[CRGoogleDrive alloc] initWithClientId:@"clientIdentifier" clientSecret:@"clientSecret" redirectUri:@"REDIRURL" state:@"CRSTATE"];
// self.service = [[CRBox alloc] initWithClientId:@"clientIdentifier" clientSecret:@"clientSecret" redirectUri:@"REDIRURL" state:@"CRSTATE"];

[CRCloudRail setAppKey:@"CLOUDRAIL_API_KEY"];
self.service = [[CRDropbox alloc] initWithClientId:@"clientIdentifier" 
   clientSecret:@"clientSecret" redirectUri:@"REDIRURL" state:@"CRSTATE"];

NSInputStream * object = [self.service downloadFileWithPath:@"/mudkip.jpg"];
//READ FROM STREAM

swift
//let cloudStorage : CloudStorageProtocol = Box.init(clientId: "ClientID", clientSecret: "ClientSecret")
//let cloudStorage : CloudStorageProtocol = GoogleDrive.init(clientId: "ClientID", clientSecret: "ClientSecret")
//let cloudStorage : CloudStorageProtocol = OneDrive.init(clientId: "ClientID", clientSecret: "ClientSecret")

CRCloudRail.setAppKey("CLOUDRAIL_API_KEY")
let cloudStorage : CloudStorageProtocol = Dropbox.init(
   clientId: "ClientID", clientSecret: "ClientSecret")
do {
   let inputStream = try cloudStorage.downloadFileWithPath("/TestFolder/Data.csv")
} catch let error{
   print("An error: \(error)")
}
//READ FROM STREAM

Bu bölüm, bir (web) uygulaması için sosyal oturum açma uygulamasının kullanım durumunu sunar. Bu bölüm Social Login hakkında sadece bir genel bakış sağlar ve sonraki bölümlerde Facebook ve Twitter için nasıl kurulacağını göstereceğiz, ancak Google Plus, LinkedIn, GitHub, Instagram, Slack, Windows Live gibi daha fazla hizmet eklemek çok kolay. ve Yahoo. Sunucu tarafında Express ile Node.js kullanacağız.

Neden Sosyal Giriş?

Yazılım geliştiricilerin ve mimarların ön uçlarına arka uç eklemelerinin en yaygın nedenlerinden biri, kullanıcı yönetimi ihtiyacıdır. Kullanıcı yönetiminin çalışması için kayıt ve oturum açma işlevleri anahtardır. Geçmişte, çoğu uygulamanın kimlik doğrulama için kendi sistemleri vardı ve bu nedenle her kullanıcının e-posta adresi, şifre ve diğer bilgileri sağlayarak aktif olarak bir hesap oluşturması gerekiyordu.

Bu sadece kullanıcı için külfetli olmakla kalmaz, aynı zamanda güvensizdir. Birçok kullanıcı her yerde aynı parolayı kullanır.password fatigueve şifrenin saklandığı her tarafla birlikte, şifrenin çalınma olasılığı artar.

Son zamanlarda, giderek daha fazla hizmet, kullanıcıların popüler bir platformda zaten mevcut hesaplarıyla kaydolmalarına / oturum açmalarına izin vererek kullanıcı deneyimini iyileştiren "sosyal giriş" ("Facebook ile Giriş", "GitHub ile Giriş", vb.) Sunar.

CloudRail uygulaması kaydettirin

Yeni bir uygulama oluşturmak için bu bağlantıyı kullanın (önce giriş yapmanız gerekebilir) - https://developers.cloudrail.com CloudRail lisans anahtarınızı uygulama özetinde bulabilirsiniz.

Facebook uygulaması kaydettirin

Yeni bir uygulama oluşturmak için bu bağlantıyı kullanın (önce giriş yapmanız gerekebilir) - https://developers.facebook.com/apps/. Ardından 'Yeni Uygulama Ekle' düğmesini tıklayın, 'Temel kurulum'u seçin ve yeni bir uygulama oluşturun. Kontrol paneli bölümünde Uygulama Anahtarınızı (İstemci Kimliği) ve Uygulama Sırrınızı (İstemci Sırrı) bulabilirsiniz.

'Ürün Ekle'ye gidin ve' Facebook Girişi'ni seçin. Yönlendirme URI'sini şu değere ayarlayın:'http://localhost:12345/auth/redirect/facebook'.

Bir Twitter uygulaması kaydettirin

Yeni bir uygulama oluşturmak için bu bağlantıyı kullanın (önce giriş yapmanız gerekebilir) - https://apps.twitter.com/"Yeni Uygulama Oluştur" düğmesini tıklayın ve gerekli bilgileri doldurun. 'Anahtarlar ve Erişim Belirteçleri'ni tıklayın ve Uygulama Anahtarınızı (İstemci Kimliği) ve Uygulama Sırrınızı (İstemci Sırrı) bulacaksınız. Yönlendirme URI'sini şu değere ayarlayın:'http://localhost:12345/auth/redirect/twitter'.

Yeni bir Node.js projesi başlatın

Node.js'nin kurulu olduğundan emin olun, yeni bir klasör oluşturun, package.json ve kur Express ve CloudRail konsolda aşağıdaki komutları (veya Unix olmayan işletim sistemlerinde eşdeğer komutları) yayınlayarak -

mkdir myProject
cd myProject
npm init
npm i --save express cloudrail-si

Oluşturulan klasörde sunucu kodunuz için yeni bir dosya oluşturun ve içe aktarmak ve kurmak için aşağıdakileri ekleyin Express ve CloudRail -

javascript
const express = require("express");
const cloudrail = require("cloudrail-si");
const app = express();
cloudrail.Settings.setKey("[CloudRail license key]");

Şimdi, sosyal oturum açma için kullanmak istediğimiz hizmetleri somutlaştıracak bir işlev yazmaya devam ediyoruz -

javascript
function makeService(name, redirectReceiver) {
   let service;
   switch (name) {
      case "twitter":
         service = new cloudrail.services.Twitter(
            redirectReceiver,
            "[Twitter Client ID]",
            "[Twitter Client Secret]",
            "http://localhost:12345/auth/redirect/twitter"
         );
         break;
      case "facebook":
         service = new cloudrail.services.Facebook(
            redirectReceiver,
            "[Facebook Client ID]",
            "[Facebook Client Secret]",
            "http://localhost:12345/auth/redirect/facebook",
            "state"
         );
         break;
      // More services from the Profile interface can be added here, 
      //the services above are just examples
      default: throw new Error("Unrecognized service");
   }
   return service;
}

Kullanıcı kimliklerini takip etmenin bir yolunu bulmalıyız. Bu normalde bir veritabanında yapılır, ancak bu öğreticiyi kısa tutmak için, birpseudo-database.

Tüm verileri bellekte tutulur ve bu nedenle sunucu yeniden başladığında kaybolur -

javascript
const users = {
   records: {}
};
users.find = (id) ⇒ {
   return users.records[id];
};
users.save = (id, data) ⇒ {
   users.records[id] = data;
};

Ardından, sosyal oturum açma akışının başlangıcını işleyecek sunucu uç noktasını kaydettik -

javascript
app.get("/auth/start/:serviceName", (req, res) ⇒ {
   let serviceName = req.params["serviceName"];
   
   let redirectReceiver = (url, state, callback) ⇒ {
      res.redirect(url);
   };
   let service = makeService(serviceName, redirectReceiver);
   service.login();
});

Sosyal girişi başlattığımız hizmet sunucumuza yeniden yönlendirecek ve bu yönlendirmeyi halletmemiz gerekiyor.

Kullanıcı için benzersiz bir tanımlayıcı aldıktan sonra, bu kullanıcıyı daha önce görüp görmediğimizi kontrol ediyoruz. Evetse, onu adıyla selamlıyoruz. Değilse, adı sosyal ağdan alırız ve yeni bir kullanıcı kaydederiz -

javascript
app.get("/auth/redirect/:serviceName", (req, res) ⇒ {
   let serviceName = req.params["serviceName"];
   
   let redirectReceiver = (url, state, callback) ⇒ {
      callback(undefined, "http://bla.com" + req.url); 
      // The callback expects a complete URL but only the query matters
   };
	let service = makeService(serviceName, redirectReceiver);
   service.getIdentifier((err, identifier) ⇒ {
      if (err) res.status(500).send(err);
      let user = users.find(identifier);
      
      if (user) {
         res.send("Welcome back " + user.name);
      } else {
         service.getFullName((err, name) ⇒ {
            if (err) res.status(500).send(err);
            users.save(identifier, {
               name: name
            });
            res.send("Welcome greenhorn!");
         });
      }
   });
});

Son olarak, sunucunun 12345 portunu dinlemesini sağladık -

javascript
app.listen(12345);

Artık uygulamayı başlatabilir ve yerel tarayıcımızda test edebiliriz.

Eğer gidersen http://localhost:12345/auth/start/facebook Facebook giriş akışını başlatacaksınız.

Eğer gidersen http://localhost:12345/auth/start/twitter Twitter giriş akışını başlatacaksınız.

Hizmete giriş yaptıktan ve erişim izni verdikten sonra "Hoşgeldin serası!" Mesajını göreceksiniz. ilk kez yaparsanız ve art arda ziyaretlerinizde "[adınız] tekrar hoş geldiniz".

Bunu gerçek bir web sitesine entegre etmek için, örneğin, servis sağlayıcının logolarını oraya ekler ve logoları ilgili URL'lere bağlarsınız.

Ayrıca sözde veri tabanı gerçek bir veri tabanı ile değiştirilmelidir. Ve işte, 9 farklı sağlayıcıya kadar sosyal giriş!