Cloudrail-quick-guide
Cloudrail-概要
CloudRailは、サードパーティのAPIをアプリケーションに統合して保守するプロセスを高速化するAPI統合ソリューションです。 これは、共通のインターフェースの背後にある同様のサービスを組み合わせた抽象化レイヤーを備えた複数のプラットフォーム用のライブラリーを提供することで実現します。
CloudRail-機能
ここにCloudRailの最も顕著な特徴のいくつかのリストがあります-
- 統合API *-CloudRailは、複数のWeb APIを単一の統合APIにバンドルします。 たとえば、関数 upload()*は、Googleドライブの場合とまったく同じようにDropboxでも機能します。 プロバイダーのカテゴリ全体を簡単に統合できます。 ソーシャルログイン、または1行のコードでプロバイダーを変更します。
- * API変更管理*-APIは常に変更され、統合の破損、顧客の不満、さらには開発時間の無駄につながります。 CloudRailはすべてのAPIを監視し、統合を維持します。 変更に関する即時通知を受け取ります。必要なことは、CloudRailライブラリを最新バージョンに更新することだけです。コードを変更する必要はありません。
- * API統計*-顧客が最も使用しているAPIと機能を理解します。 新機能の特定やマーケティングキャンペーンの改善に必要な洞察を取得します。
- 直接データ-データがCloudRailサーバーを通過することはありません。 システムはホストされたミドルウェアを使用しません。 すべてのデータ変換は、アプリに統合されているCloudRailライブラリで行われます。 これは、データプライバシーの懸念、ダウンタイム、および追加のSPOFがないことを意味します。
- OAuth Made Simple -OAuth認証を行うのは大変です。 CloudRailを使用すると、1行のコードを追加するだけで承認が簡単になります。
CloudRailの無料バージョンは、非営利目的またはテストにのみ使用できます。 商用ユーザーはライセンスを購入する必要があります。
Cloudrail-Android
このセクションでは、CloudRailのAndroid SDKの使用方法について説明します。
セットアップ
最も簡単なインストール方法は、Mavenを使用することです。 GradleでAndroid Studioを使用している場合は、* build.gradleファイルに以下を追加するだけで十分です-
dependencies {
compile 'com.cloudrail:cloudrail-si-android:2.8.1
}
使用法
次の例は、新しいフォルダーを作成し、Androidアプリケーションのアセットからクラウドストレージプロバイダーで新しく作成されたフォルダーにファイルをアップロードする方法を示しています。
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();
Cloudrail-Java
このセクションでは、CloudRailのJava SDKの使用方法について紹介します。
セットアップ
最も簡単なインストール方法は、Mavenを使用することです。 以下を pom.xml ファイルに追加するだけで十分です-
<dependencies>
<dependency>
<groupId>com.cloudrail</groupId>
<artifactId>cloudrail-si-java</artifactId>
<version>2.8.0</version>
</dependency>
</dependencies>
使用法
次の例は、新しいフォルダーを作成し、ローカルコンピューターからクラウドストレージプロバイダーで新しく作成されたフォルダーにファイルをアップロードする方法を示しています。
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();
Cloudrail-Node.js
このセクションでは、CloudRailのNode.js SDKの使用方法について紹介します。
セットアップ
最も簡単なインストール方法は、 NPM を使用することです。 単に次のコマンドを使用します-
npm install cloudrail-si
使用法
次の例は、新しいフォルダーを作成し、ローカルコンピューターからクラウドストレージプロバイダーで新しく作成されたフォルダーにファイルをアップロードする方法を示しています。
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");
});
});
Cloudrail-IOS
このセクションでは、CloudRailのiOS SDKの使用方法について紹介します。
セットアップ
最も簡単なインストール方法は、 CocoaPods を使用することです。 以下を podfile に追加するだけです-
pod "cloudrail-si-ios-sdk"
「use_frameworks!」を確認してくださいフラグが設定されて実行されます
Pod install
使用法
次の例は、Objective-Cおよび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
Cloudrail-ソーシャルログイン
このセクションでは、(Web)アプリにソーシャルログインを実装するユースケースを示します。 この章では、ソーシャルログインの概要のみを示し、以降の章では、FacebookおよびTwitter用に設定する方法を示しますが、Google Plus、LinkedIn、GitHub、Instagram、Slack、Windows Liveなどのサービスを追加するのは非常に簡単ですそしてヤフー。 サーバー側でNode.jsとExpressを使用します。
なぜソーシャルログインですか?
ソフトウェア開発者とアーキテクトがフロントエンドにバックエンドを追加する最も一般的な理由の1つは、ユーザー管理の必要性です。 ユーザー管理が機能するためには、サインアップとサインイン機能が重要です。 過去には、ほとんどのアプリケーションに認証用の独自のシステムがあったため、すべてのユーザーは、電子メールアドレス、パスワード、その他の情報を提供することにより、積極的にアカウントを作成する必要がありました。
これはユーザーにとって面倒なだけでなく、悪名高い安全性もありません。 多くのユーザーは、「パスワード疲労」として知られるあらゆる場所で同じパスワードを使用し、パスワードが保存されているすべての関係者で、パスワードが盗まれる可能性が高まります。
最近、ますます多くのサービスが「ソーシャルログイン」(「Facebookでログイン」、「GitHubでログイン」など)を提供し、人気のあるプラットフォームで既存のアカウントでユーザーがサインアップ/ログインできるようにすることでユーザーエクスペリエンスを向上させています。
Cloudrail-セットアップ
CloudRailアプリを登録する
このリンクを使用して、新しいアプリを作成します(最初にログインする必要があります)-https://developers.cloudrail.comアプリの概要でCloudRailライセンスキーを見つけることができます。
Facebookアプリを登録する
このリンクを使用して、新しいアプリを作成します(最初にログインする必要がある場合があります)-https://developers.facebook.com/apps/。 次に、[新しいアプリの追加]ボタンをクリックし、[基本セットアップ]を選択して、新しいアプリを作成します。 ダッシュボードセクションで、アプリキー(クライアントID)とアプリシークレット(クライアントシークレット)を見つけます。
[製品の追加]に移動し、[Facebookログイン]を選択します。 リダイレクトURIを 'http://localhost:12345/auth/redirect/facebook' に設定します。
Twitterアプリを登録する
このリンクを使用して、新しいアプリを作成します(最初にログインする必要があります)-https://apps.twitter.com/[新しいアプリの作成]ボタンをクリックして、必要な詳細を入力します。 [キーとアクセストークン]をクリックすると、アプリキー(クライアントID)とアプリシークレット(クライアントシークレット)が表示されます。 リダイレクトURIを 'http://localhost:12345/auth/redirect/twitter' に設定します。
新しいNode.jsプロジェクトを初期化する
Node.jsがインストールされていることを確認し、新しいフォルダーを作成し、 package.json を初期化し、コンソールで次のコマンド(または非Unix OSで同等のコマンド)を発行して Express と CloudRail をインストールします-
mkdir myProject
cd myProject
npm init
npm i --save express cloudrail-si
Cloudrail-コーディング
作成したフォルダにサーバーコード用の新しいファイルを作成し、次を追加して Express および CloudRail をインポートおよびセットアップします−
javascript
const express = require("express");
const cloudrail = require("cloudrail-si");
const app = express();
cloudrail.Settings.setKey("[CloudRail license key]");
今、私たちはソーシャルログインに使用したいサービスをインスタンス化する関数を書くことで続けます-
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;
}
ユーザーIDを追跡する方法が必要です。 これは通常データベースで行われますが、このチュートリアルを短くするために、*疑似データベース*として機能するオブジェクトを使用します。
そのデータはすべてメモリに保持されるため、サーバーの再起動時に失われます-
javascript
const users = {
records: {}
};
users.find = (id) ⇒ {
return users.records[id];
};
users.save = (id, data) ⇒ {
users.records[id] = data;
};
その後、ソーシャルログインフローの開始を処理するサーバーエンドポイントを登録します-
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();
});
ソーシャルログインを開始したサービスはサーバーにリダイレクトされ、このリダイレクトを処理する必要があります。
ユーザーの一意の識別子を取得した後、以前にこのユーザーを見たことがあるかどうかを確認します。 はいの場合は、彼の名前で挨拶します。 そうでない場合、我々はソーシャルネットワークから名前を取得し、新しいユーザーを保存します-
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!");
});
}
});
});
最後に、ポート12345でサーバーをリッスンさせます-
javascript
app.listen(12345);
これで、アプリケーションを起動して、ローカルブラウザでテストできます。
*http://localhost:12345/auth/start/facebook* に移動すると、Facebookのログインフローが開始されます。
*http://localhost:12345/auth/start/twitter* に移動すると、Twitterログインフローが開始されます。
サービスにログインしてアクセスを許可すると、「Welcome greenhorn!」と表示されます。あなたが初めてそれをし、連続訪問で「[あなたの名前]へようこそ」と言った場合。
これを実際のWebサイトに統合するには、たとえば、サービスプロバイダーのロゴをそこに含め、ロゴをそれぞれのURLにリンクします。
また、擬似データベースは実際のデータベースに置き換える必要があります。 そして、そこに行く、最大9種類のプロバイダーのソーシャルログイン!