2010年4月25日日曜日

OAuthの概要について調べてみた

OAuthの概要
OAuthとは
  1. ユーザーのクレデンシャルを外部にさらすことなく、
    APIへのアクセス権を別のアプリケーションに譲渡するための、
    認証プロトコルの標準仕様。
  2. IDとパスワードの代わりにトークンを渡して、
    別のリソースへアクセスさせる

OAuthのフロー概要
まず、OAuthには登場人物が3人いる。
  1. ユーザ
  2. サービスプロバイダ
    (ユーザの認可情報を第三者に渡すサービス)
    Google、Yahoo!、twitterなど
  3. コンシューマ
    (サービスプロバイダから認可情報を受け取り,
    ユーザに代っていろいろな情報にアクセスしたり
    変更/追加を行ったりするサービス)


仮にユーザをUさん、サービスプロバイダをSさん、コンシューマをCさんとすると、
OAuthは以下のようなフローになる。

U「ねえねえ、Cくん。
君はオンラインショッピングのサービスを提供しているよね」
C「そうだよ」
U「いいサービスだと思うから、友達に紹介したいんだけど」
C「お、いいよ。誰に紹介したいの?」
U「Sくんのアドレスブックサービスに友達1000人くらい登録してるんだ。
その人たち全員に紹介したい。
Sくんのサービスで使っている僕のユーザ名とパスワードを教えるから
友達情報を取ってきてよ。
これから自由に使っていいし」
C「個人情報だだ漏れじゃないか!
 それに君がパスワード変えたときはどうするの?

ちょっと待ってて。Sくんと調整してみるよ」

C「Sくん。
僕のサービスと君のアドレスブックサービスを連携させて使いたい、
っていう人がいるんだけど」
S「個人情報入っているサービスじゃん。
アドレスブックサービスを使っていいか、
Cくんじゃなくて直接本人に確認したいな。
その人にこの割り符を持たせて、こちらに来るように言ってくれないか」
C「分かった」

C「という訳で、ちゃんとSくんに対して直接許可を与えて欲しい」
U「OK」

U「Sくん。
Cくんに僕のアドレスブックに入っている友達情報を教えて欲しい。」
S「その前にきみは誰だ?」
U「Uだよ」
S「なるほど。。
Uくん、君のアドレスブックの情報をCくんに教えていいんだな?」
U「うん」
S「割り符は? Cくんに渡しているはずだけど」
U「持ってきたよ」
S「おお、ぴったり合うな。分かった、じゃあCくんに教えるよ。
Cくんに、この許可証を渡してくれ。
Cくんがきみの個人情報にアクセスできるという許可証だ。
ちなみに1時間だけ有効だから。」
U「分かった。ありがとう」

U「Cくん。Sくんに許可を与えたから、
Sくんのアドレスブックサービスにアクセスしてよ。
許可証を渡されたから、これを持ってね!」
C「OK」

C「Sくん、君のサービスを使わせて欲しい」
S「ん?」
C「許可証も持っているよ」
S「なになに。。よし、いいよ。
使っていいよ」
C「ありがとう!
Uくんの友達の情報、ゲットだぜ!
早速この人たち全員に紹介しよう」

話が長くなりましたが、キモとしては、
Cくんは、
SくんのサービスでUくんが使っている
ユーザ名やパスワードを全く知らずに、
SくんのサービスからUくんの個人情報を知ることができた

ということです。

参考リンク
  1. @IT - APIアクセス権を委譲するプロトコル、OAuthを知る
  2. gihyo.jp - ゼロから学ぶOAuth 第1回 OAuthとは?―OAuthの概念とOAuthでできること

2010年4月18日日曜日

MacでAndroid開発 1.エミュレータを起動する

エミュレータ起動に必要だったもの概要
  1. Eclipse (バージョン3.5)
  2. Android SDK
  3. Android ADT

全部フリー!

では詳細な手順を書いていきます。

Eclipseをダウンロード
Eclipseのサイトより、
Eclipse IDE for Java Developers
をダウンロードします。

ここでいきなり問題なのが、Macの環境によって、
以下の2つのモノが用意されている点。

  1. Mac Carbon 32bit
  2. Mac Cocoa 32bitもしくは64bit


CarbonとCacaoの違い
ググったら以下のサイトを発見。
LCFE satellite
Mac初心者なので良く分からない事が多い。。けど自分的に大事だと思ったのは、

  • CocoaはObjective-Cもしくは、JAVAがメインの開発言語の開発環境
  • CarbonはC++/Cがメインの開発言語

の違い。
iPhoneアプリ開発もしたい(Objective-Cも使いたい)ので、
Cacaoの方を選択します。

で、
ダウンロードしたEclipseを適当なディレクトリに配置。

Android SDKをインストール
Download the Android SDK - Androidよりダウンロードして
適当な場所に展開して完了。

Android ADTをダウンロード
Eclipseのプラグインなので、まずEclipseを起動。
「Help」→「Install New Software」を選択。
すると「Available Software」という見出しのダイアログボックスが出てきます。
一番上の「Work with:」と書かれたテキストボックスに、
以下のURLを入力し、Addボタンを押します。
https://dl-ssl.google.com/android/eclipse/

すると、ダイアログ中央部に、何か利用可能な開発ツールの一覧が出てくるので、
チェックボックスにチェックし、次に進みます。
以降指示に従っていけばADTのダウンロードはできます。

インストール後の設定はここを参考にすれば
できます(手抜き)。

Hello World作成
ここを参考にすれば
できます(手抜き)。

いよいよエミュレータ起動
しようとしても何かエラーが出ました。

  • Your project contains error(s), please fix them before running your application.
  • No compatible targets were found. Do you wish to a add new Android Virtual Device?

エラーの対処法
以下のエラーが出る場合は、Vamp Recordsというブログが参考になると思います。
  • Your project contains error(s), please fix them before running your application.


また、以下のエラーが出る場合。
  • No compatible targets were found. Do you wish to a add new Android Virtual Device?

上記Vamp Recordsでも対処法が乗っていましたが、
対処できませんでした。
(ターミナルが「android」コマンドを認識してくれなかった)

ので、Eclipseから対処します。
Eclipseの「Window」→「Android SDK and AVD Manager」を選択。
ダイアログボックスが出てくるので、
左カラムの「Virtual Devices」を選択を選択した状態で、「New...」を押す。
で、「Name」と「Target」を好きなものにして「create AVD」を押す。
するとAVD(仮想でバイス)が作成されます。

これで上記エラーは出なくなりました。

エミュレータが起動できた
ただ一つ、コンソールに謎のワーニングが出ていました。
  • Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.

So Many People, So Many Different Ideasというブログによると、「これはAndroidのワーニングではないらしい。気にしなくてもよいとのこと」。「エミュレータのワーニングらしい」。

まとめ
フリーは素晴らしいです。

参考にさせて頂いたサイト
  1. Vamp Records
  2. @IT - Androidで動く携帯Javaアプリ作成入門(1)
  3. So Many People, So Many Different Ideas - 2009-10-07 はじめてのAndroidを読み始めました

Mac版Operaで前回終了時の状態を復元する方法

左上の「×」印で終了したらダメ
ではどうすればいいのかと言うと、
Operaメニューの「Operaを終了」で終了するんです。

タブを復元するのってかなり面倒くさいですよね。

Related Posts Plugin for WordPress, Blogger...