Facebookアプリの作成(C#+Windows Azure) その2
Facebookアプリの作成(C#+Windows Azure) その1では、Facebookアプリをローカルでデバッグするところまで作成しましたが、今回は、ここまでの段階で必要な「認識」や、「陥りやすい問題」について紹介します。
1 アプリをFacebookに結合する方法(1) 6つのタイプとその選択方法
Facebookアプリは、その結合形態から次の6つのタイプがあります。
最初に、自分が今から開発するアプリケーションが、どのタイプなのかを明確にしておく必要があります。
(a) Facebook上のアプリ
Facebook.com内で動作するWebアプリです。
(b) Facebookでログインが可能なウエブサイト
(c) モバイルWebアプリ
Facebook.com以外で動作するWebアプリです。
(d) ネイティブiOSアプリ
(e) ネイティブAndroidアプリ
デバイス上で動作するクライアントアプリです。
(f) ページタブ
Facebook.com内で動作するWebアプリです。Facebookページ(ファンページ)のカスタムタブとして動作します。
上記のうちどのタイプを選択するかは、「基本設定」の「アプリをFacebookに結合する方法を選択」で、どのタイプの設定するかによって決定されます。
今回、作成に挑戦しているのは、(a)の「Facebook上のアプリ」です。
(2) 結合の形態
「Facebook上のアプリ」の結合形態は図のようになっています。Facebook.comドメインの指定されたURLをリクエストすると、Facebookの通常のページを描画する際に、その一部としてiFrameで独自作成のWebページを取り込みます。
Facebookでは、現在、このiFrameに表示するページが、SSL(https://)でアクセスクセス)できることを必須(デバッグ時は例外[後述])としています。
2 認証(1) Facebook SDK for.NET による認証
Facebook APIを使用するためには、「アクセストークン」が必要になります。そして、この「アクセストークン」を取得するためには、Facebookで認証を受けなければなりません。
Facebookの認証は、現在「OAuth 2.0」になっていますが、Webアプリにおいては、リダイレクトなどを含む複数回のやり取りが必要になります。
OAuth2.0の詳しい解説は各所でなされているためここでは省略しますが、今回使用している「Facebook SDK for.NET」では、Default.aspx.csのPage_Load()に記述した下記のコードだけで、その一連の動作が隠ぺいされています。
var auth = new CanvasAuthorizer{Permissions = new[]{"user_about_me"}}; if (auth.Authorize()){ //認証成功時に、ここに到達するので、ブレークポイントをおいて確認できる }
auth.Authorize()の下にブレークポイントを置いて、そこに止まれば、認証が成功していると言えます。
(2) 認証に必要な情報
認証の一連のシーケンスでは、下記の4つの文字列が必要になります。(a) App ID
(b) App Secert
(c) キャンパスページ
(d) キャンパスURL
そして、この文字列は「基本設定」のページで確認できます。
また、この4種類の文字列をFacebook SDK for.NETに与える方法は、Web.configの下記の記述になります。
[csharp highlight="2,3,4,5,6"]
</entityFramework>
<facebookSettings
appId = "12345678"
appSecret = "xxxxxxxxxxxxxxxxxxxxx"
canvasPage = "http://apps.facebook.com/sample_fb_pg"
canvasUrl = "http://localhost:81/" />
</configuration>
|