SIN@SAPPOROWORKSの覚書

C#を中心に、夜な夜な試行錯誤したコードの記録です。

Facebookアプリの作成(C#+Windows Azure) その4

1 Facebookテンプレート

今回は、ASP.NET MVC 4に新しく追加されている「Facebookテンプレート」を使用してみました。
昨年末の「One ASP.NET Advent Calendar 2012」で、マイクロソフトの井上章氏によって紹介された「Visual Studio 2012 と ASP.NET で Facebook アプリを作る」を参照させて頂き、そのまま作業を進めたのですが、私の勘違いか、それとも、この半年で仕様が変わってしまったのか、ローカルデバッグ時に非SSLが動作しなくて、ちょっと悩みました。

2 プロジェクト作成

(1) プロジェクト作成

新しいプロジェクトの作成で「VisualC#」−「Web」−「ASP.NET MVC 4 Webアプリケーション」を選択します。

C001

「テンプレートの選択」では「Facebook アプリケーション」を選択します。

C002

(2) プロジェクトの構成

「参照設定」を確認すると「Facebook」と「Microsoft.AspNet.MVC.Facebook」が見つかります。
C003

ソリューションエクスプローラで確認すると、「Control」と「View」には、「Index」及び「Permission」の2つが定義され、「Modules」や「App_Start」の中にも、いくつかのコードが格納されています。

C004

また、Web.configにも、必要な定義のひな形が入っています。

C005

(3) SSL有効

プロジェクトのプロパティを確認すると、「開発サーバ」の所で「SSL 有効」がtrueになっており、既にhttps://でアクセスできるようになっていました。
※次の「Facebookアプリの新規登録」の「基本設定」でこの「SSL URL」(https://localhost:44303)を使用するので記録しておきます。

C006

3 Facebookアプリの新規登録

(1) 基本設定

アプリを新規に作成する作業は、(その1の「3 Facebookアプリの新規登録」)と、まったく同じ作業です。
ただ、最終的に「基本設定」の「アプリをFacebookに結合する方法」で、前回は、「キャンパスURL」の方に設定しましたが、今回は「セキュリティで保護されたキャンパスURL」の方に前節で記録したURL(https://localhost:44303)を設定します。

前回の設定
C007

今回の設定
C008

即ち、今回は、ローカルデバッグの時点でSSL通信で結合するという事になります。
色々試してみたのですが、どうしても非SSLでの結合は、できませんでした。
本ライブラリのチュートリアルでもSSLで作業する手順になっていたことと、プロジェクトで最初からSSLが有効になっていることから、これが現在の仕様なのかなと思いました。

(2) Web.configの設定

次づいて、アプリの基本設定から、必要な情報をWeb.configに写しますが、今回必要なのは、「App ID:」「App Secret:」「Namespace:」の3項目になります。

C009

[html highlight="8,9,10"]
<configuration>
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="Facebook:AppId" value="12345678" />
<add key="Facebook:AppSecret" value="xxxxxxxxxxxxxxxxxxxxx" />
<add key="Facebook:AppNamespace" value="sample_fb_pg" />
<add key="Facebook:AuthorizationRedirectPath" value="~/Home/Permissions" />
<add key="Facebook:VerifyToken:User" value="" />
</appSettings>
|