2024
11
23
2013
08
31
日本製BaaS:appiaries を使ってみる。その5
今回は、日本製のBaaS:appiaries(アピアリーズ)のユーザー機能の使い方の第2弾です。
前回の記事「日本製BaaS:appiaries を使ってみる。その4」では、次の4点をappiaries(アピアリーズ)のユーザー機能のポイントとし、基本設定部分について説明しました。
- コールバックURLを設定する。
- JSONオブジェクトの作成権限を"SIGN IN"とする。
- ページに認証ページへのリンクを設定する。
- 認証後の処理を記述する。
- 投稿ボタンを押したときの処理を記述する。
今回は、このうち3番目の「ページに認証ページへのリンクを設定する。」の部分についての話です。
ページに認証ページへのリンクを設定する。
appiaries(アピアリーズ)の登録ユーザーに限って、投稿できるというような設定にした場合、ユーザーが登録ユーザーなのかを判断しなければなりません。このためには、一度、ユーザーにappiaries(アピアリーズ)の認証を受けてもら必要があります。このためには、WEBページにappiaries(アピアリーズ)の認証ページへのリンクを設定します。
認証ページのURL
appiaries(アピアリーズ)の認証ページのURLは、次のようなものです。
https://api-oauth.appiaries.com/v1/auth ?response_type=token &scope=nickname &client_id=[client_id] &redirect_uri=[redirect_uri]
appiaries(アピアリーズ)の OAuth API を用います。 クエリーパラメータの概要は次のとおり。
respnpse_type
Implicit Grantでアクセストークンを取得する場合は「token」。 Authorization Grantで認可コードを取得する場合は「code」。
scope
取得するユーザー属性の範囲。指定がない場合は「userid」とみなされます。 「gender」、「picture」、「country」などの個別の属性や、やや範囲の広い「profile」などを指定できます。
client_id
「アプリ詳細」>「OAuth情報」の欄に表示されているアプリ固有の「クライアントID」です。
redirect_uri
「アプリ詳細」>「OAuth情報」の欄に追加した「リダイレクトURL」です。認証後、このパラメータで指定したURLにリダイレクトされます。
その他のパラメータ
コールバックURIに引き継ぐデータは「state」パラメータを使います。
「Implicit Grantでアクセストークンを取得する」
「appiary_1_O_1.js」を用いた認証ページへのリンク設定
「お試しアピアリーズ・ユーザー投稿掲示板」では、「お試しアピアリーズ appiary_1_0_1_js」を使って、appiaries(アピアリーズ)の認証ページへのリンクを設定しています。その手順の概略を示します。
HTMLでのリンク箇所
HTMLで、認証ページへのリンクを作成したい箇所にアンカーを設定しておきます。
<a id="login">Login</a>
Appiary オブジェクトの生成
「appiary.1.0.1.js」では、Appiary オブジェクトを作成して、そのプロパティ、メソッドを利用します。
var appiary = new Appiary( '_sandbox', '[アプリID]', '[アプリトークン]', '[クライアントID]', '[スコープ]' );
ログイン有無の判定
Appiary オブジェクトでは、ユーザーがログインしている場合には、「store_token」に値が入るようにしています。したがって、この真偽によってユーザーがログインしているか判断できます。
var login = document.querySelector('#login'); if(appiary.store_token){ //ログインしている場合の処理 //略 }else{ //ログインしてない場合の処理 login.setAttribute( 'href', appiary.oauth_url +'&redirect_uri='+location.href ); //略 }
認証用ページへのリンクの生成
上記のスニペットのとおり、リンク用のアンカー要素の href属性に認証用ページのURIを設定すれば、認証用ページへのリンクができあがります。
Appiary オブジェクトでは、「oauth_url」プロパティに認証用ページへの基本的なURIが埋め込まれますので、通常、リクエストパラメータに「redirect_uri」を付加すれば充分です。
上記の例では、処理を簡単にするため、自分自身(location.href)に認証後リダイレクトするようにしています。なお、このページのURLは、基本設定「アプリ詳細」>「OAuth情報」で「リダイレクトURL」として登録しておく必要があります。
全体の記述
認証用リンクの作り方は以上のとおりです。ただ、全体的な記述はわかりにくいかもしれません。そこで、「お試しアピアリーズ・ユーザー投稿掲示板」で使用しているコードを Gist に掲載しました。
Gist : appiary_sign_1_0_1.js
また、「appiary.1.0.1.js」の Gist は、「appiary.1.0.1.js」です。
関連ページ
- 「日本製BaaS:appiaries を使ってみる。」
- 「日本製BaaS:appiaries を使ってみる。その2」
- 「日本製BaaS:appiaries を使ってみる。その3」
- 「日本製BaaS:appiaries を使ってみる。その4」
関連リンク
- 「お試しアピアリーズ」
- 「お試しアピアリーズ・誰かの落書き」
- 「お試しアピアリーズ・ユーザー投稿掲示板」
- Gist : appiary_sign_1_0_1.js
- Gist : appiary.1.0.1.js
2013/08/31 (Sat.) Comment(0) appiaries
2013
08
29
日本製BaaS:appiaries を使ってみる。その4
今回は、日本製のBaaS:appiaries(アピアリーズ)のユーザー機能の使い方について簡単に説明します。
前回の記事「日本製BaaS:appiaries を使ってみる。その3」で紹介した「お試しアピアリーズ・ユーザー投稿掲示板」のページを作成したときのポイントを示しましょう。
要点は次の4点。
- コールバックURLを設定する。
- JSONオブジェクトの作成権限を"SIGN IN"とする。
- ページに認証ページへのリンクを設定する。
- 認証後の処理を記述する。
- 投稿ボタンを押したときの処理を記述する。
コールバックURLを設定する。
「コールバックURL」は appiaries(アピアリーズ)がユーザー認証を行った後に戻ってくるページです。
appiaries(アピアリーズ)での「コールバックURL」の設定は、「アプリ詳細」の「OAuth編集」で行います。
「お試しアピアリーズ・ユーザー投稿掲示板」では、そのページのURL「https://api-datastore.appiaries.com/v1/bin/_sandbox/message/board/sign_1_0_1/_bin」自体を「コールバックURL」に設定しています。簡便だからです。
「コールバックURL」のページで、いったんアクセストークンなどのパラメータを保存する方法もありますが、少し複雑になります。
appiaries(アピアリーズ)での「コールバックURL」の設定は、3つまで設定できますが、複数設定した場合は、リクエスト時にどの「コールバックURL」を使用するのか指定する必要があります。
appiaries(アピアリーズ)のチュートリアル「OAuthによるサインイン処理」も参考にして下さい。
JSONオブジェクトの作成権限を"SIGN IN"とする。
appiaries(アピアリーズ)での権限レベルは、"ALL"、"SIGN IN"、”OWNER”、”ADMIN”の4種類です。「作成」、「参照」、「更新」、「削除」ごとにこれらのアクセス権限を設定します。
「お試しアピアリーズ・ユーザー投稿掲示板」では、投稿を appiaries(アピアリーズ)のユーザーに限定しますので、「作成」権限は"SIGN IN"です。また、投稿内容は公開しますので、「参照」権限は"ALL"です。なお、「更新」権限は”OWNER”、「削除」権限は”ADMIN”としています。
appiaries(アピアリーズ)でのアクセス権限の設定は、コレクション作成時には「datastore manager」>「データベース」>「コレクションの作成」で行います。
appiaries(アピアリーズ)のチュートリアル「ユーザーインターフェースの用意」も参考にして下さい。
appiaries(アピアリーズ)でユーザー機能を用いる場合の基本的な設定は、上記の「コールバックURLの設定」と「コレクションのアクセス権限」です。
これらの基本設定後の処理部分の記述については、次回説明します。
関連ページ
関連リンク
2013/08/29 (Thu.) Comment(0) appiaries
2013
08
27
日本製BaaS:appiaries を使ってみる。その3
今回は、日本製のBaaS:appiaries(アピアリーズ)のユーザー機能を使ったページを紹介します。
サンプルとして作成したのが、「お試しアピアリーズ・ユーザー投稿掲示板」
前回の「日本製BaaS:appiaries を使ってみる。その2」では、投稿権限を制限していない「お試しアピアリーズ・誰かの落書き」を示しましたが、「お試しアピアリーズ・ユーザー投稿掲示板」は、投稿は appiaries(アピアリーズ)のユーザーに限定しています。
限定とはいっても、appiaries(アピアリーズ)への登録は簡単ですので、是非ユーザー登録して利用してみて下さい。また、閲覧は無制限ですので「お試しアピアリーズ・ユーザー投稿掲示板」を覗いて、雰囲気を掴んでもらうだけでもいいでしょう
今回はサンプルページの紹介のみ。 次回、設定やコードについて、説明します。
関連ページ
関連リンク
2013/08/27 (Tue.) Comment(0) appiaries
2013
08
26
日本製BaaS:appiaries を使ってみる。その2
前回の記事「日本製BaaS:appiaries を使ってみる。」では、 appiaries(アピアリーズ) をファイル置き場として利用する例のひとつに、「お試しアピアリーズ」を紹介しました。
広告なしの無料ホームページ代わりになりそうですが、それだけでは appiaries(アピアリーズ)がどういうものかを理解するには不十分です。 やはりAPIを利用したいところです。
そこで作ってみたのが、「お試しアピアリーズ・誰かの落書き」。 appiaries の JSONデータAPI を利用しています。 以下、そこで使用している JSONデータAPI とは、どんなものか眺めてみましょう。
JSONデータの取得
単独オブジェクトの取得
appiaries の JSONデータAPI では、オブジェクトのID("_id")を指定して、そのオブジェクトのデータを取得できます。
体験版のデータストア("_sandbox")で、"message"というアプリの"all"というコレクションでIDが"1be51bd3774b562422"のものを取得するURLは次のとおりです。
https://api-datastore.appiaries.com/v1/dat/_sandbox/message/all/1be51bd3774b562422
次のようなJSONデータが返ってきます。
{ "_id":"1be51bd3774b562422", "text":"何、食べた?", "_cby":"_anonymous_", "_uby":"_anonymous_", "_cts":1375702358174, "_uts":1375702358174 }
プロパティ名がアンダーバー付のものは、appiaries で自動的に付加されるものです。 ただし,"_id"は、データ登録時に指定することができます。コレクション内でユニークなものにすればよいので、連番にすることも可能です。 "_cby"、"_uby"は、それぞれデータ登録時、変更時のユーザー。 "_cts"、"_uts"は、データ登録時、変更時のタイムスタンプ(UTC通算秒)です。
複数オブジェクトの取得(検索)
appiaries の JSONデータAPI では、検索条件を付加して複数のオブジェクトのデータを取得できます。
https://api-datastore.appiaries.com/v1/dat/_sandbox/message/all/-;_uts.lt.1375702358174n;
検索条件の最初のハイフン"-"は、オブジェクトIDを指定するのではなく、検索することを示しているようです。
次のようなJSONデータが返ってきます。
{ "_total":3, "_objs":[ {"_id":"f668f6604628647042",(略)}, {"_id":"95cfe19116d83c79b2",(略)}, {"_id":"10433c901af7f83a15",(略)} ], "_start":1, "_end":3, "_prev":false, "_next":false }
アクセス権限
"all"というコレクションは参照権限は"ALL"に設定していますので、すべてのデータを誰でも取得できます。 アクセス権限は、"ALL"のほかに、"SIGN IN"というものがあり、この場合にはサインインしているユーザーに限定されます。 また、"OWNER"という設定すると、そのオブジェクトのオーナーに限られます。 APIからアクセスできないもの、すなわちダッシュボード画面でのみ操作できるものは"ADMIN"という設定をします。
2013/08/26 (Mon.) Comment(0) appiaries
2013
08
07
日本製BaaS:appiaries を使ってみる。
日本製のBaaS:appiaries(アピアリーズ)を使って、 「お試しアピアリーズ」というページを作ってみた。
とりあえず、HTMLやCSS、JavaScriptなどのファイルを置けることがわかりました。 体験版では20MBという容量の制限があるものの、無料ホームページ代わりにも使えることがわかったのは収穫。 このあとは、JSONデータやユーザー関係のAPIを利用して、もうちょっと高度な利用方法を考えたいと思いました。
アプリを開発する際には、サーバーやデータベースの構築などのバックエンド作業が面倒。 その煩雑さを解消してくれるのが、「Backend as a Service」こと「BaaS」ということのようです。 モバイル・アプリで利用する共通の基本的な機能もあらかじめ用意しているので、アプリ本体の開発に集中できるようになることがメリット。
海外の BaaS(Backend as a Service)には、Parse, StackMob, Kinvey, Buddy, CloudMine, QuickBlox, Appcelerator Cloud Services(旧、Cocoafish),Buddy, Pankia, などがあるとのこと。 ただし、語学が堪能ではない自分には、ちょっと敷居が高い。そんな中、日本語のドキュメントがある appiaries はありがたい。 機能はまだ多くなくシンプル。それがかえってわかりやすさにつながりそう。 appiaries で雰囲気に慣れてから、海外の BaaS にトライするほうがベターと考えました。
詳しいことは、appiaries のドキュメント を読めば、だいたいわかると思います。 このブログでは、「お試しアピアリーズ」を作成した際に気付いたことなどを記していきましょう。 アプリの種類は、JavaScript アプリです。 これで基本をつかめば、PHPなどを用いたWEBアプリやandroidアプリなどにも応用できるでしょう。
2013/08/07 (Wed.) Comment(0) appiaries