Cloudrail - Kurzanleitung
CloudRail ist eine API-Integrationslösung, die den Prozess der Integration und Wartung von APIs von Drittanbietern in eine Anwendung beschleunigt. Dazu werden Bibliotheken für mehrere Plattformen mit Abstraktionsschichten bereitgestellt, die ähnliche Dienste hinter einer gemeinsamen Schnittstelle kombinieren.
CloudRail - Funktionen
Hier ist eine Liste der wichtigsten Funktionen von CloudRail -
Unified API- CloudRail bündelt mehrere Web-APIs in einer einzigen einheitlichen API. Zum Beispiel die Funktionupload()funktioniert für Dropbox genauso wie für Google Drive. Sie können ganz einfach ganze Kategorien von Anbietern integrieren, z. B. Social Logins, oder einen Anbieter mit einer einzigen Codezeile ändern.
API Change Management- APIs ändern sich ständig, was zu fehlerhaften Integrationen, unzufriedenen Kunden und noch mehr verschwendeter Entwicklungszeit führt. CloudRail überwacht alle APIs und verwaltet die Integrationen. Sie erhalten sofort Benachrichtigungen über Änderungen. Sie müssen lediglich die CloudRail-Bibliothek auf die neueste Version aktualisieren - es sind keine Codeänderungen erforderlich.
API Statistics- Verstehen Sie, welche APIs und Funktionen von Ihren Kunden am häufigsten verwendet werden. Erhalten Sie die erforderlichen Erkenntnisse, um neue Funktionen zu identifizieren oder Marketingkampagnen zu verbessern.
Direct Data- Keine Ihrer Daten wird jemals einen CloudRail-Server passieren. Das System verwendet keine gehostete Middleware. Die gesamte Datentransformation erfolgt in der CloudRail-Bibliothek, die in Ihre App integriert ist. Dies bedeutet keine Datenschutzbedenken, keine Ausfallzeiten und keinen zusätzlichen SPOF.
OAuth Made Simple- OAuth-Authentifizierungen durchzuführen ist ein Schmerz. CloudRail macht Berechtigungen so einfach wie das Hinzufügen einer einzelnen Codezeile.
Die kostenlose Version von CloudRail darf nur für nichtkommerzielle Zwecke oder zum Testen verwendet werden. Gewerbliche Nutzer müssen eine Lizenz erwerben.
Dieser Abschnitt enthält eine Einführung in die Verwendung des Android SDK von CloudRail.
Installieren
Die Installation erfolgt am einfachsten über Maven. Wenn Sie Android Studio mit Gradle verwenden, reicht es aus, Folgendes zu Ihrem hinzuzufügenbuild.gradle file - -
dependencies {
compile 'com.cloudrail:cloudrail-si-android:2.8.1
}
Verwendung
Das folgende Beispiel zeigt, wie Sie einen neuen Ordner erstellen und eine Datei aus den Assets einer Android-Anwendung in den neu erstellten Ordner eines beliebigen Cloud-Speicheranbieters hochladen.
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();
Dieser Abschnitt enthält eine Einführung in die Verwendung des Java SDK von CloudRail.
Installieren
Die Installation erfolgt am einfachsten über Maven. Es reicht aus, Folgendes zu Ihrem hinzuzufügenpom.xml Datei -
<dependencies>
<dependency>
<groupId>com.cloudrail</groupId>
<artifactId>cloudrail-si-java</artifactId>
<version>2.8.0</version>
</dependency>
</dependencies>
Verwendung
Das folgende Beispiel zeigt, wie Sie einen neuen Ordner erstellen und eine Datei vom lokalen Computer in den neu erstellten Ordner eines beliebigen Cloud-Speicheranbieters hochladen.
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();
Dieser Abschnitt enthält eine Einführung in die Verwendung des Node.js SDK von CloudRail.
Installieren
Die Installation ist am einfachsten über NPM. Verwenden Sie einfach den folgenden Befehl:
npm install cloudrail-si
Verwendung
Das folgende Beispiel zeigt, wie Sie einen neuen Ordner erstellen und eine Datei vom lokalen Computer in den neu erstellten Ordner eines beliebigen Cloud-Speicheranbieters hochladen.
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");
});
});
Dieser Abschnitt enthält eine Einführung in die Verwendung des iOS SDK von CloudRail.
Installieren
Die Installation ist am einfachsten über CocoaPods. Fügen Sie einfach Folgendes zu Ihrem hinzupodfile - -
pod "cloudrail-si-ios-sdk"
Stellen Sie sicher, dass "use_frameworks!" Flag wird gesetzt und ausgeführt
Pod install
Verwendung
Die folgenden Beispiele zeigen, wie Sie eine Datei von einem beliebigen Cloud-Speicheranbieter in Objective-C und Swift herunterladen.
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
In diesem Abschnitt wird der Anwendungsfall der Implementierung der sozialen Anmeldung für eine (Web-) App vorgestellt. Dieses Kapitel bietet nur einen Überblick über Social Login. In den folgenden Kapiteln wird gezeigt, wie Sie es für Facebook und Twitter einrichten. Es ist jedoch sehr einfach, weitere Dienste wie Google Plus, LinkedIn, GitHub, Instagram, Slack und Windows Live hinzuzufügen und Yahoo. Wir werden Node.js mit Express auf der Serverseite verwenden.
Warum Social Login?
Einer der häufigsten Gründe, warum Softwareentwickler und Architekten ihren Frontends ein Backend hinzufügen, ist die Notwendigkeit der Benutzerverwaltung. Damit die Benutzerverwaltung funktioniert, sind Anmelde- und Anmeldefunktionen der Schlüssel. In der Vergangenheit hatten die meisten Anwendungen ein eigenes System zur Authentifizierung. Daher musste jeder Benutzer aktiv ein Konto erstellen, indem er E-Mail-Adresse, Kennwort und andere Informationen bereitstellte.
Dies ist nicht nur für den Benutzer umständlich, sondern auch notorisch unsicher. Viele Benutzer verwenden überall dasselbe Passwort, das alspassword fatigueund mit jeder Partei, die das Passwort gespeichert hat, steigt die Wahrscheinlichkeit, dass es gestohlen wird.
In letzter Zeit bieten immer mehr Dienste "Social Login" ("Login mit Facebook", "Login mit GitHub" usw.) an, was die Benutzererfahrung verbessert, indem Benutzer sich mit ihrem bereits vorhandenen Konto auf einer beliebten Plattform anmelden / anmelden können.
Registrieren Sie eine CloudRail-App
Verwenden Sie diesen Link, um eine neue App zu erstellen (möglicherweise müssen Sie sich zuerst anmelden) - https://developers.cloudrail.com Sie finden Ihren CloudRail-Lizenzschlüssel in der App-Zusammenfassung.
Registrieren Sie eine Facebook-App
Verwenden Sie diesen Link, um eine neue App zu erstellen (möglicherweise müssen Sie sich zuerst anmelden) - https://developers.facebook.com/apps/. Klicken Sie dann auf die Schaltfläche "Neue App hinzufügen", wählen Sie "Grundeinstellung" und erstellen Sie eine neue App. Im Dashboard-Bereich finden Sie Ihren App-Schlüssel (Client-ID) und Ihr App-Geheimnis (Client-Geheimnis).
Gehen Sie zu "Produkt hinzufügen" und wählen Sie "Facebook Login". Stellen Sie den Umleitungs-URI auf ein'http://localhost:12345/auth/redirect/facebook'.
Registrieren Sie eine Twitter-App
Verwenden Sie diesen Link, um eine neue App zu erstellen (möglicherweise müssen Sie sich zuerst anmelden) - https://apps.twitter.com/Klicken Sie auf die Schaltfläche "Neue App erstellen" und geben Sie die erforderlichen Details ein. Klicken Sie auf "Schlüssel und Zugriffstoken" und Sie finden Ihren App-Schlüssel (Client-ID) und Ihr App-Geheimnis (Client-Geheimnis). Stellen Sie den Umleitungs-URI auf ein'http://localhost:12345/auth/redirect/twitter'.
Initialisieren Sie ein neues Node.js-Projekt
Stellen Sie sicher, dass Sie Node.js installiert haben, erstellen Sie einen neuen Ordner und initialisieren Sie die package.json und installieren Express und CloudRail durch Ausgabe der folgenden Befehle in der Konsole (oder der entsprechenden Befehle unter Nicht-Unix-Betriebssystemen) -
mkdir myProject
cd myProject
npm init
npm i --save express cloudrail-si
Erstellen Sie im erstellten Ordner eine neue Datei für Ihren Servercode und fügen Sie zum Importieren und Einrichten Folgendes hinzu Express und CloudRail - -
javascript
const express = require("express");
const cloudrail = require("cloudrail-si");
const app = express();
cloudrail.Settings.setKey("[CloudRail license key]");
Jetzt schreiben wir eine Funktion, die die Dienste instanziiert, die wir für die soziale Anmeldung verwenden möchten.
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;
}
Wir brauchen eine Möglichkeit, die Benutzeridentitäten im Auge zu behalten. Dies geschieht normalerweise in einer Datenbank. Um dieses Tutorial kurz zu halten, verwenden wir ein Objekt, das alspseudo-database.
Alle Daten werden gespeichert und gehen somit beim Neustart des Servers verloren -
javascript
const users = {
records: {}
};
users.find = (id) ⇒ {
return users.records[id];
};
users.save = (id, data) ⇒ {
users.records[id] = data;
};
Anschließend registrieren wir den Serverendpunkt, der den Start des sozialen Anmeldeflusses übernimmt.
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();
});
Der Dienst, mit dem wir die soziale Anmeldung gestartet haben, wird auf unseren Server umgeleitet, und wir müssen diese Umleitung durchführen.
Nachdem wir eine eindeutige Kennung für den Benutzer erhalten haben, prüfen wir, ob wir diesen Benutzer bereits gesehen haben. Wenn ja, dann begrüßen wir ihn mit seinem Namen. Wenn nicht, erhalten wir den Namen aus dem sozialen Netzwerk und speichern einen neuen Benutzer -
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!");
});
}
});
});
Schließlich hat der Server Port 12345 abgehört -
javascript
app.listen(12345);
Wir können die Anwendung jetzt starten und in unserem lokalen Browser testen.
Wenn Sie zu navigieren http://localhost:12345/auth/start/facebook Sie starten den Facebook-Login-Flow.
Wenn Sie zu navigieren http://localhost:12345/auth/start/twitter Sie starten den Twitter-Anmeldefluss.
Nachdem Sie sich mit dem Dienst angemeldet und den Zugriff gewährt haben, wird "Willkommen Greenhorn!" Angezeigt. wenn Sie es zum ersten Mal tun und bei aufeinanderfolgenden Besuchen "Willkommen zurück [Ihr Name]".
Um es in eine tatsächliche Website zu integrieren, würden Sie beispielsweise die Logos des Dienstanbieters dort einfügen und die Logos mit den jeweiligen URLs verknüpfen.
Außerdem sollte die Pseudodatenbank durch eine echte ersetzt werden. Und los geht's, Social Login für bis zu 9 verschiedene Anbieter!