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でインストールが可能です。
「ツール」ー「ライブラリパッケージマネージャ」-「パッケージマネージャコンソール」を開いてインストールを行ってください。
(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>
|