Cloudrail - Panduan Cepat

CloudRail adalah solusi integrasi API yang mempercepat proses integrasi API pihak ketiga ke dalam aplikasi dan memeliharanya. Ia melakukannya dengan menyediakan pustaka untuk berbagai platform yang menampilkan lapisan abstraksi yang menggabungkan layanan serupa di belakang antarmuka umum.

CloudRail - Fitur

Berikut adalah daftar beberapa fitur CloudRail yang paling menonjol -

  • Unified API- CloudRail menggabungkan beberapa API web menjadi satu API terpadu. Misalnya, fungsinyaupload()bekerja persis sama untuk Dropbox seperti halnya untuk Google Drive. Anda dapat dengan mudah mengintegrasikan seluruh kategori penyedia, misalnya Login Sosial, atau mengubah penyedia dengan satu baris kode.

  • API Change Management- API berubah sepanjang waktu, menyebabkan integrasi yang rusak, pelanggan yang tidak puas, dan bahkan lebih banyak waktu pengembangan yang terbuang percuma. CloudRail memantau semua API dan mempertahankan integrasinya. Anda mendapatkan pemberitahuan langsung tentang perubahan dan yang perlu Anda lakukan hanyalah memperbarui pustaka CloudRail ke versi terbaru - tidak perlu perubahan kode.

  • API Statistics- Pahami API dan fungsi mana yang paling banyak digunakan oleh pelanggan Anda. Dapatkan wawasan yang Anda butuhkan untuk mengidentifikasi fitur baru atau meningkatkan kampanye pemasaran.

  • Direct Data- Tidak ada data Anda yang akan melewati server CloudRail. Sistem tidak menggunakan middleware yang dihosting. Semua transformasi data terjadi di pustaka CloudRail yang terintegrasi di Aplikasi Anda. Ini berarti tidak ada masalah privasi data, tidak ada waktu henti, dan tidak ada SPOF tambahan.

  • OAuth Made Simple- Melakukan otentikasi OAuth sangat merepotkan. CloudRail membuat otorisasi sesederhana menambahkan satu baris kode.

Versi gratis CloudRail hanya dapat digunakan untuk tujuan atau pengujian non-komersial. Pengguna komersial harus membeli lisensi.

Bagian ini memberikan pengenalan tentang cara menggunakan SDK Android CloudRail.

Mendirikan

Cara termudah untuk menginstal adalah melalui Maven. Jika Anda menggunakan Android Studio dengan Gradle, cukup tambahkan berikut ini ke filebuild.gradle file -

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

Pemakaian

Contoh berikut menunjukkan cara membuat folder baru dan mengupload file dari aset aplikasi Android ke folder yang baru dibuat di penyedia penyimpanan cloud mana pun.

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();

Bagian ini memberikan pengenalan tentang cara menggunakan Java SDK CloudRail.

Mendirikan

Cara termudah untuk menginstal adalah melalui Maven. Itu sudah cukup untuk menambahkan berikut ini ke Andapom.xml file -

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

Pemakaian

Contoh berikut menunjukkan cara membuat folder baru dan mengupload file dari mesin lokal ke folder yang baru dibuat di penyedia penyimpanan cloud mana pun.

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();

Bagian ini memberikan pengantar tentang cara menggunakan Node.js SDK CloudRail.

Mendirikan

Cara termudah untuk menginstal adalah melalui NPM. Cukup gunakan perintah berikut -

npm install cloudrail-si

Pemakaian

Contoh berikut menunjukkan cara membuat folder baru dan mengupload file dari mesin lokal ke folder yang baru dibuat di penyedia penyimpanan cloud mana pun.

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");
   });
});

Bagian ini memberikan pengantar tentang cara menggunakan CloudRail's iOS SDK.

Mendirikan

Cara termudah untuk menginstal adalah melalui CocoaPods. Cukup tambahkan yang berikut ini kepodfile -

pod "cloudrail-si-ios-sdk"

Pastikan "use_frameworks!" bendera disetel dan dijalankan

Pod install

Pemakaian

Contoh berikut menunjukkan cara mendownload file dari penyedia penyimpanan cloud apa pun di Objective-C dan Swift.

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

Bagian ini menyajikan kasus penggunaan penerapan login sosial untuk aplikasi (web). Bab ini hanya memberikan gambaran umum tentang Login Sosial dan di bab-bab berikutnya, kami akan menunjukkan cara mengaturnya untuk Facebook dan Twitter tetapi sangat mudah untuk menambahkan lebih banyak layanan seperti Google Plus, LinkedIn, GitHub, Instagram, Slack, Windows Live dan Yahoo. Kami akan menggunakan Node.js dengan Express di sisi server.

Mengapa Login Sosial?

Salah satu alasan paling umum mengapa pengembang dan arsitek perangkat lunak menambahkan backend ke frontend mereka adalah kebutuhan akan manajemen pengguna. Agar manajemen pengguna berfungsi, fungsi pendaftaran dan masuk adalah kuncinya. Di masa lalu, sebagian besar aplikasi memiliki sistem autentikasi sendiri dan oleh karena itu setiap pengguna perlu membuat akun secara aktif dengan memberikan alamat email, sandi, dan informasi lainnya.

Ini tidak hanya merepotkan bagi pengguna tetapi juga sangat tidak aman. Banyak pengguna akan menggunakan kata sandi yang sama di mana pun, yang dikenal sebagaipassword fatigue, dan dengan setiap pihak yang menyimpan kata sandi, kemungkinan tumbuh bahwa kata sandi itu dicuri.

Akhir-akhir ini, semakin banyak layanan menawarkan "login sosial" ("Login dengan Facebook", "Login dengan GitHub", dll.) Yang meningkatkan pengalaman pengguna dengan memungkinkan pengguna mendaftar / login dengan akun mereka yang sudah ada di platform populer.

Daftarkan aplikasi CloudRail

Gunakan tautan ini untuk membuat aplikasi baru (Anda mungkin harus masuk terlebih dahulu) - https://developers.cloudrail.com Anda dapat menemukan kunci lisensi CloudRail Anda di ringkasan aplikasi.

Daftarkan aplikasi Facebook

Gunakan tautan ini untuk membuat aplikasi baru (Anda mungkin harus masuk terlebih dahulu) - https://developers.facebook.com/apps/. Kemudian klik tombol 'Tambahkan Aplikasi Baru', pilih 'Pengaturan dasar' dan buat aplikasi baru. Di bagian dasbor, Anda akan menemukan Kunci Aplikasi (ID Klien) dan Rahasia Aplikasi (Rahasia Klien).

Pergi ke 'Tambahkan Produk' dan pilih 'Login Facebook'. Setel URI Pengalihan ke'http://localhost:12345/auth/redirect/facebook'.

Daftarkan aplikasi Twitter

Gunakan tautan ini untuk membuat aplikasi baru (Anda mungkin harus masuk terlebih dahulu) - https://apps.twitter.com/Klik tombol 'Buat Aplikasi Baru' dan isi detail yang diperlukan. Klik 'Kunci dan Token Akses' dan Anda akan menemukan Kunci Aplikasi (ID Klien) dan Rahasia Aplikasi (Rahasia Klien). Setel URI Pengalihan ke'http://localhost:12345/auth/redirect/twitter'.

Inisialisasi proyek Node.js baru

Pastikan Anda telah menginstal Node.js, buat folder baru, inisialisasi package.json dan instal Express dan CloudRail dengan mengeluarkan perintah berikut di konsol (atau perintah yang setara di OS non-Unix) -

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

Buat file baru untuk kode server Anda di folder yang dibuat dan tambahkan yang berikut ini untuk mengimpor dan menyiapkan Express dan CloudRail -

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

Sekarang, kami melanjutkan dengan menulis fungsi yang akan memberi contoh layanan yang ingin kami gunakan untuk login sosial -

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;
}

Kami membutuhkan cara untuk melacak identitas pengguna. Ini biasanya dilakukan dalam database tetapi untuk membuat tutorial ini singkat, kita akan menggunakan objek yang bertindak sebagai filepseudo-database.

Semua datanya disimpan dalam memori dan dengan demikian hilang ketika server dimulai ulang -

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

Setelah itu, kami mendaftarkan titik akhir server yang akan menangani dimulainya alur login sosial -

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();
});

Layanan tempat kami memulai login sosial akan mengarahkan ke server kami dan kami perlu menangani pengalihan ini.

Setelah mendapatkan pengenal unik untuk pengguna, kami memeriksa apakah kami telah melihat pengguna ini sebelumnya. Jika ya, maka kami menyapanya dengan namanya. Jika tidak, kami mendapatkan nama dari jejaring sosial dan menyimpan pengguna baru -

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!");
         });
      }
   });
});

Terakhir, kami meminta server mendengarkan pada port 12345 -

javascript
app.listen(12345);

Kami sekarang dapat memulai aplikasi dan mengujinya di browser lokal kami.

Jika Anda menavigasi ke http://localhost:12345/auth/start/facebook Anda akan memulai alur login Facebook.

Jika Anda menavigasi ke http://localhost:12345/auth/start/twitter Anda akan memulai alur masuk Twitter.

Setelah masuk dengan layanan dan memberikan akses, Anda akan melihat "Selamat datang orang baru!" jika Anda melakukannya untuk pertama kali dan "Selamat datang kembali [nama Anda]" pada kunjungan berturut-turut.

Untuk mengintegrasikannya ke dalam situs web yang sebenarnya, Anda akan, misalnya, menyertakan logo penyedia layanan di sana dan membuat tautan logo ke masing-masing URL.

Selain itu, pseudo-database harus diganti dengan yang asli. Dan begitulah, login sosial hingga 9 penyedia berbeda!