2010-11-19 15 views
9

Ben CodePlex C# Facebook SDK "Basit MVC Web sitesi Örneği" indirdiğiniz:facebook-C# -sdk MVC "Merhaba Dünya" uygulaması - erişim belirteci nasıl alınır?

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

ve başarıyla benim test Facebook uygulaması kimlik doğrulaması için var. Ancak erişim belirtecini nasıl alacağımı tam olarak anlayamıyorum (ve çevrimdışı erişimi isteyeceğim. Bu nedenle, kullanıcı ilk önce uygulamamı feed verilerini alma konusunda yetkilendirdiğinde bu belirteci bir kez almam gerekir).

çok teşekkürler

http://github.com/facebook/csharp-sdk burada

kimlik doğrulama jetonu getirme nasıl bir açıklamasını

+0

Bu çözüldü aldın:

<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> 

Sonraki, erişim jetonu almak üzere, sadece kullanıcının kimliği doğrulandıktan sonra eylem aşağıdakileri yapın? Kullanıcının oturum açmasına neden olan javascript FB.getLoginStatus ekledim. Fakat sdk'yi kullanarak app.Session her zaman boş. – Danny

+0

Çözüme kavuştum, lütfen Nathan'ın tavsiyesine bakın. Belki uygulama kimliğinizle ilgili bir sorun mu var? –

+2

Soruyu kabul edildi olarak işaretlemeyi unutma –

cevap

9

İki şey yapmak isteyeceksiniz. Öncelikle, offline_access istemek için, aşağıdaki gibi çevrimdışı erişim istemek için Javascript giriş fonksiyonunu değiştirmeniz gerekir. Bu, Views/Home/Index.aspx dizinindedir.

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

Nathan, çok teşekkürler. Mükemmel çalışıyor. ( –

+0

İlgili konular