先ほど投稿した Part 1 で Facebook 側の設定が完了しました。続いて、NuGet で FacebookWeb をインストールしたプロジェクトに、以下のコードを記載していきましょう。

最初に Web.config にある facebookSettings で、appID 、appSecret 、 canvasPage そして canvasUrl の 4 つの項目を入れていきます。appID と appSecret は Facebook 側で設定されている値をそのまま、それ以外は自分で設定している内容を記載します。

<facebookSettings appId="{appID}" appSecret="{appSecret}" canvasPage="http://apps.facebook.com/{appUrl}/" canvasUrl ="http://localhost:61436/" cancelUrlPath = "" />

続いて、default.aspx に Label を一つ配置します。今回はこんな感じのコードにしてみました。

<form id="form1" runat="server">
<div>
こんにちは <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> さん!
</div>
</form>

続いて default.aspx.cs には Page_Load() の中にコードを入れていきます。using  に Facebook 、Facebook.Web の 2 行を追加して、以下のコードを追加してできあがり。

protected void Page_Load(object sender, EventArgs e)
{
     CheckIfFacebookAppIsSetupCorrectly();

     var auth = new CanvasAuthorizer { Permissions = new[] { "user_about_me" } };

     if (auth.Authorize())
     {
         var fb = new FacebookWebClient();
         var result = (IDictionary<string, object>)fb.Get("/me");
         var name = (string)result["name"];
         Label1.Text = name;
     }
}

 private void CheckIfFacebookAppIsSetupCorrectly()
{
     bool isSetup = false;
     var settings = ConfigurationManager.GetSection("facebookSettings");
     if (settings != null)
     {
         var current = settings as IFacebookApplication;
         if (current.AppId != "{app id}" &&
             current.AppSecret != "{app secret}" &&
             current.CanvasPage != "http://apps.facebook.com/{fix path}/")
         {
             isSetup = true;
         }
     }

     if (!isSetup)
     {
         Response.Redirect("~/GettingStarted.aspx");
     }
}

これで設定は完了です。動作させてみましょう。

image

ということで、ログインをしたら名前が表示される、というシンプルな Facebook アプリが出来上がりました。

広告