Cloudrail - Szybki przewodnik
CloudRail to rozwiązanie integrujące API, które przyspiesza proces integracji API innych firm z aplikacją i utrzymania ich. Czyni to, udostępniając biblioteki dla wielu platform z warstwami abstrakcji, które łączą podobne usługi za wspólnym interfejsem.
CloudRail - funkcje
Oto lista niektórych z najważniejszych funkcji CloudRail -
Unified API- CloudRail łączy wiele internetowych interfejsów API w jeden ujednolicony interfejs API. Na przykład functionupload()działa dokładnie tak samo w przypadku Dropbox, jak w przypadku Dysku Google. Możesz łatwo zintegrować całe kategorie dostawców, np. Loginy społecznościowe, lub zmienić dostawcę za pomocą jednej linii kodu.
API Change Management- API nieustannie się zmieniają, prowadząc do zepsutych integracji, niezadowolonych klientów i jeszcze bardziej zmarnowanego czasu na rozwój. CloudRail monitoruje wszystkie interfejsy API i utrzymuje integracje. Otrzymujesz natychmiastowe powiadomienia o zmianach, a wszystko, co musisz zrobić, to zaktualizować bibliotekę CloudRail do najnowszej wersji - nie są wymagane żadne zmiany kodu.
API Statistics- Dowiedz się, które interfejsy API i funkcje są najczęściej używane przez Twoich klientów. Uzyskaj niezbędne informacje potrzebne do zidentyfikowania nowych funkcji lub ulepszenia kampanii marketingowych.
Direct Data- Żadne z Twoich danych nigdy nie przejdą przez serwer CloudRail. System nie korzysta z hostowanego oprogramowania pośredniego. Cała transformacja danych odbywa się w bibliotece CloudRail, która jest zintegrowana z Twoją aplikacją. Oznacza to brak obaw o prywatność danych, brak przestojów i brak dodatkowych SPOF.
OAuth Made Simple- Wykonywanie uwierzytelnień OAuth jest uciążliwe. CloudRail sprawia, że autoryzacje są tak proste, jak dodanie jednej linii kodu.
Bezpłatna wersja CloudRail może być używana wyłącznie do celów niekomercyjnych lub do testów. Użytkownicy komercyjni muszą zakupić licencję.
Ta sekcja zawiera wprowadzenie do korzystania z zestawu SDK CloudRail dla systemu Android.
Ustawiać
Najłatwiejszym sposobem instalacji jest Maven. Jeśli używasz Android Studio z Gradle, wystarczy dodać następujące pliki do plikubuild.gradle file -
dependencies {
compile 'com.cloudrail:cloudrail-si-android:2.8.1
}
Stosowanie
Poniższy przykład pokazuje, jak utworzyć nowy folder i przesłać plik z zasobów aplikacji systemu Android do nowo utworzonego folderu u dowolnego dostawcy magazynu w chmurze.
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();
Ta sekcja zawiera wprowadzenie do korzystania z pakietu Java SDK CloudRail.
Ustawiać
Najłatwiejszym sposobem instalacji jest Maven. Wystarczy dodać do swojegopom.xml plik -
<dependencies>
<dependency>
<groupId>com.cloudrail</groupId>
<artifactId>cloudrail-si-java</artifactId>
<version>2.8.0</version>
</dependency>
</dependencies>
Stosowanie
Poniższy przykład pokazuje, jak utworzyć nowy folder i przesłać plik z komputera lokalnego do nowo utworzonego folderu u dowolnego dostawcy magazynu w chmurze.
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();
Ta sekcja zawiera wprowadzenie do korzystania z pakietu SDK Node.js CloudRail.
Ustawiać
Najłatwiejszym sposobem instalacji jest NPM. Po prostu użyj następującego polecenia -
npm install cloudrail-si
Stosowanie
Poniższy przykład pokazuje, jak utworzyć nowy folder i przesłać plik z komputera lokalnego do nowo utworzonego folderu u dowolnego dostawcy magazynu w chmurze.
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");
});
});
Ta sekcja zawiera wprowadzenie do korzystania z pakietu CloudRail SDK iOS.
Ustawiać
Najłatwiejszym sposobem instalacji jest CocoaPods. Po prostu dodaj następujące elementy do swojegopodfile -
pod "cloudrail-si-ios-sdk"
Upewnij się, że "use_frameworks!" flaga jest ustawiona i uruchomiona
Pod install
Stosowanie
Poniższe przykłady pokazują, jak pobrać plik od dowolnego dostawcy pamięci masowej w chmurze w Objective-C i 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
Ta sekcja przedstawia przypadek użycia implementacji logowania społecznościowego dla aplikacji (internetowej). Ten rozdział zawiera tylko przegląd logowania społecznościowego, aw kolejnych rozdziałach pokażemy, jak skonfigurować je dla Facebooka i Twittera, ale bardzo łatwo jest dodać więcej usług, takich jak Google Plus, LinkedIn, GitHub, Instagram, Slack, Windows Live i Yahoo. Będziemy używać Node.js z Expressem po stronie serwera.
Dlaczego logowanie społecznościowe?
Jednym z najczęstszych powodów, dla których programiści i architekci dodają backend do swoich frontendów, jest potrzeba zarządzania użytkownikami. Aby zarządzanie użytkownikami działało, funkcje rejestracji i logowania są kluczowe. W przeszłości większość aplikacji miała własny system uwierzytelniania, dlatego każdy użytkownik musiał aktywnie założyć konto, podając adres e-mail, hasło i inne informacje.
Jest to nie tylko kłopotliwe dla użytkownika, ale także notorycznie niebezpieczne. Wielu użytkowników wszędzie będzie używać tego samego hasła, znanego jakopassword fatigue, a wraz z każdą stroną, która ma zapisane hasło, rośnie prawdopodobieństwo, że zostanie ono skradzione.
Ostatnio coraz więcej usług oferuje „logowanie społecznościowe” („Zaloguj się przez Facebook”, „Zaloguj się przez GitHub” itp.), Które poprawia komfort użytkowania, umożliwiając użytkownikom rejestrację / logowanie przy użyciu już istniejącego konta na popularnej platformie.
Zarejestruj aplikację CloudRail
Użyj tego linku, aby utworzyć nową aplikację (może być konieczne wcześniejsze zalogowanie) - https://developers.cloudrail.com Klucz licencyjny CloudRail można znaleźć w podsumowaniu aplikacji.
Zarejestruj aplikację na Facebooku
Użyj tego linku, aby utworzyć nową aplikację (może być konieczne wcześniejsze zalogowanie) - https://developers.facebook.com/apps/. Następnie kliknij przycisk „Dodaj nową aplikację”, wybierz „Konfiguracja podstawowa” i utwórz nową aplikację. W sekcji pulpitu nawigacyjnego znajdziesz klucz aplikacji (identyfikator klienta) i klucz aplikacji (klucz tajny klienta).
Przejdź do „Dodaj produkt” i wybierz „Logowanie do Facebooka”. Ustaw identyfikator URI przekierowania na'http://localhost:12345/auth/redirect/facebook'.
Zarejestruj aplikację na Twitterze
Użyj tego linku, aby utworzyć nową aplikację (może być konieczne wcześniejsze zalogowanie) - https://apps.twitter.com/Kliknij przycisk „Utwórz nową aplikację” i podaj wymagane informacje. Kliknij `` Klucze i tokeny dostępu '', a znajdziesz swój klucz aplikacji (identyfikator klienta) i klucz aplikacji (klucz klienta). Ustaw identyfikator URI przekierowania na'http://localhost:12345/auth/redirect/twitter'.
Zainicjuj nowy projekt Node.js.
Upewnij się, że masz zainstalowany Node.js, utwórz nowy folder, zainicjuj plik package.json i zainstaluj Express i CloudRail wydając następujące polecenia w konsoli (lub równoważne polecenia w systemach operacyjnych innych niż Unix) -
mkdir myProject
cd myProject
npm init
npm i --save express cloudrail-si
Utwórz nowy plik dla kodu serwera w utworzonym folderze i dodaj następujące elementy, aby zaimportować i skonfigurować Express i CloudRail -
javascript
const express = require("express");
const cloudrail = require("cloudrail-si");
const app = express();
cloudrail.Settings.setKey("[CloudRail license key]");
Teraz kontynuujemy, pisząc funkcję, która utworzy wystąpienie usług, których chcemy używać do logowania społecznościowego -
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;
}
Potrzebujemy sposobu na śledzenie tożsamości użytkowników. Zwykle odbywa się to w bazie danych, ale aby ten samouczek był krótki, użyjemy obiektu, który działa jak plikpseudo-database.
Wszystkie jego dane są przechowywane w pamięci i tym samym są tracone po ponownym uruchomieniu serwera -
javascript
const users = {
records: {}
};
users.find = (id) ⇒ {
return users.records[id];
};
users.save = (id, data) ⇒ {
users.records[id] = data;
};
Następnie rejestrujemy punkt końcowy serwera, który będzie obsługiwał początek przepływu logowania społecznościowego -
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();
});
Usługa, z której uruchomiliśmy logowanie społecznościowe, przekieruje na nasz serwer i musimy obsłużyć to przekierowanie.
Po uzyskaniu unikalnego identyfikatora użytkownika sprawdzamy, czy widzieliśmy go wcześniej. Jeśli tak, to witamy go jego imieniem. Jeśli nie, otrzymujemy nazwę z sieci społecznościowej i zapisujemy nowego użytkownika -
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!");
});
}
});
});
Wreszcie serwer nasłuchuje na porcie 12345 -
javascript
app.listen(12345);
Możemy teraz uruchomić aplikację i przetestować ją w naszej lokalnej przeglądarce.
Jeśli przejdziesz do http://localhost:12345/auth/start/facebook uruchomisz przepływ logowania na Facebooku.
Jeśli przejdziesz do http://localhost:12345/auth/start/twitter rozpoczniesz proces logowania na Twitterze.
Po zalogowaniu się do usługi i przyznaniu dostępu zobaczysz komunikat „Witaj, głupku!” jeśli zrobisz to po raz pierwszy i „Witaj z powrotem [Twoje imię]” przy kolejnych wizytach.
Aby zintegrować go z rzeczywistą witryną internetową, należy na przykład umieścić tam logo usługodawcy i połączyć logo z odpowiednimi adresami URL.
Poza tym pseudo-bazę danych należy zastąpić prawdziwą. I gotowe, logowanie społecznościowe dla maksymalnie 9 różnych dostawców!