SIN@SAPPOROWORKSの覚書

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

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

@ITの記事「基礎から分かる、Facebookアプリの作り方」亀渕景司氏 では、「CodePlex」で公開されている「Facebook SDK for .NET」を使用してC#Facebookアプリを作成する方法が丁寧に解説されています。

今回、この記事を参考にさせて頂いて、初めてFacebookアプリの作成に挑戦してみました。
記事が2年以上経過しているため、Facebook側の表示やSDKの利用方法に変化があったのと、私にとって今回が「初めての」という事で色々つまづいた所があったので、覚書としてここに記録させて頂きました。

なお、ここでは、画面遷移に主に記載しているだけですので、詳しい解説は、元記事の方をご参照ください。

今回使用したのは、下記のバージョンです。
VisualStudio 2012
Facebook SDK for.NET Ver 5.4.1.0

1 プロジェクトの作成

(1) VisualStudo 2012の起動

VisualStudioは、「管理者モード」で起動してください。
「管理者モード」で起動しないとデバッグ時に「Windows Azure コンピューティングエミュレータ」が起動できないというエラーが発生します。

(2) プロジェクト作成

「ファイル(F)」−「新規作成(N)」−「プロジェクト(P)」から「テンプレート・VisualC#」の「Windows Azure クラウドサービス」を選択します。

表示されたダイアログで「ASP.NET Web ロール」を追加して「OK」ボタンを押します。

「ソリューションエクスプローラ」を確認すると、2つのプロジェクト(「WebRole1」及び「WindowsAzure1」)を保持したソリューション(WindowsAzure1)が作成されているのを確認することができます。

(3)スタートページの設定

プロジェクト「WebRole1」の「.Default.aspx」を右クリックし、「スタートページに設定(P)」を選択します。

2 Facebook C# SDK のセットアップ

(1) パッケージマネージャによるインストール

Facebook C# SDKは、NuGetでインストールが可能です。
ツール」ー「ライブラリパッケージマネージャ」-「パッケージマネージャコンソール」を開いてインストールを行ってください。


PM> Install-Package FacebookWeb -Version 5.4.1.0
依存関係 'Facebook (≥ 5.4.1.0)' の解決を試みています。
'Facebook 5.4.1.0' が正常にインストールされました。
'FacebookWeb 5.4.1.0' が正常にインストールされました。
'Facebook 5.4.1.0' が WebRole1 に正常に追加されました。
'FacebookWeb 5.4.1.0' が WebRole1 に正常に追加されました。

今回は、最新版のVer5.4.1.0を指定しましたが、-Versionまでタイプした時点でスペースキーで1文字開けてからTABキーを押すことで、現在入手可能なバージョンを一覧することができます。

インストールが完了すると、プロジェクトの「参照設定」で Facebook.Web 及び、依存関係で必要となる Facebook が追加されていることを確認できます。

また、この時点でWebConfigにも「facebookSettings」等の記述が自動的に追加されています。

Web.configが編集された影響で、この時点でデバッグ実行すると「HTTP 500 Internal Server Error」となってしまいます。

(2) Web.configの編集

Web.configを開いて、<system.webServer>の下に
<validation validateIntegratedModeConfiguration="false"/> を追加します。
[csharp highlight="2"]
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true" />
<handlers>
<add name="facebookredirect.axd" verb="*" path="facebookredirect.axd" type="Facebook.Web.FacebookAppRedirectHttpHandler, Facebook.Web" />
</handlers>
</system.webServer>
|