2010-11-19 19 views
9

私はCodePlexの時からC#のFacebook SDK「簡単なMVC Webサイトの例」をダウンロードした:facebook-C#-sdk MVC「Hello World」アプリ - アクセストークンを取得する方法?

http://facebooksdk.codeplex.com/releases/view/54371

と成功し、それは私のテストのFacebookアプリを認証するために持っています。しかし、私はアクセストークンを取得する方法を実際には取り上げることができません(そして、私はオフラインアクセスが必要なので、ユーザーが最初に自分のフィードデータを取得するために初めてトークンを取得する必要があります)。

感謝

+0

は、あなたがこの解決を取得しました:

<div id="fb-root"></div> <script src="http://connect.facebook.net/en_US/all.js"></script> <script> FB.init({ appId: '<%:FacebookSettings.Current.AppId %>', status: true, cookie: true, xfbml: true }); $('#fbLogin').click(function() { FB.login(function (response) { if (response.session) { window.location = '<%:Url.Action("Profile") %>' } else { // user cancelled login } }, { perms: 'offline_access' }); }); </script> </asp:Content> 

次は、アクセストークンを取得するには、あなただけのユーザーが認証された後のアクションで、次のでしょうか?私はjavascript FB.getLoginStatusを追加した結果、ユーザーはログインしています。しかし、C#ではsdkを使ってapp.Sessionは常にnullです。 – Danny

+0

解決しました.Nathanのアドバイスをご覧ください。アプリIDに問題がある可能性がありますか? –

+2

質問を受け入れたとマークすることを忘れないでください。 –

答えて

9

あなたは2つのことをしたいと思うでしょう。まず、offline_accessを要求するには、次のように、Javascriptのログイン機能を変更してオフラインアクセスを要求する必要があります。これはViews/Home/Index.aspxにあります。

public ActionResult Profile() 
    { 
     var app = new FacebookApp(); 
     if (app.Session == null) 
     { 
      // The user isnt logged in to Facebook 
      // send them to the home page 
      return RedirectToAction("Index"); 
     } 
    // Read current access token: 
     var accessToken = app.Session.AccessToken; 

     // Get the user info from the Graph API 
     dynamic me = app.Api("/me"); 
     ViewData["FirstName"] = me.first_name; 
     ViewData["LastName"] = me.last_name; 

     return View(); 
    } 
+0

ネイサン、多くのありがとう。完璧に動作します。 ( –

+0

<スクリプトSRC =「http://connect.facebook.net/en_US/all.js」>