2010-11-19 23 views
9

Tôi đã tải về C# Facebook SDK "Simple MVC website Ví dụ" từ CodePlex tại địa chỉ:facebook-C# -sdk MVC "Xin chào thế giới" ứng dụng - làm thế nào để có được mã thông báo truy cập?

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

và đã có thành công nó để xác thực để thử nghiệm ứng dụng Facebook của tôi. Nhưng tôi hoàn toàn không biết cách lấy mã thông báo truy cập (và tôi muốn truy cập ngoại tuyến, vì vậy tôi chỉ cần lấy mã thông báo đó một lần, khi người dùng cấp phép ứng dụng của tôi lần đầu tiên lấy dữ liệu nguồn cấp dữ liệu của họ).

Rất cám ơn

+0

Bạn có được điều này được giải quyết? Tôi đã thêm javascript FB.getLoginStatus mà kết quả là người dùng đã đăng nhập. Nhưng trong C# sử dụng sdk app.Session luôn là null. – Danny

+0

Tôi đã giải quyết vấn đề này, vui lòng xem lời khuyên của Nathan. Có thể một số vấn đề với ID ứng dụng của bạn? –

+2

Đừng quên đánh dấu câu hỏi là đã chấp nhận –

Trả lời

9

Bạn sẽ muốn làm hai việc. Trước tiên, để yêu cầu offline_access, bạn cần phải thay đổi chức năng đăng nhập Javascript để yêu cầu truy cập ngoại tuyến như sau. Đây là trong Views/Home/Index.aspx.

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

Tiếp theo, để có mã thông báo truy cập, bạn chỉ cần làm như sau trong hành động sau khi người dùng được xác thực:

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, cảm ơn rất nhiều. Hoạt động hoàn hảo. Ngẫu nhiên, cho phép thêm người ta sẽ thêm chúng như là một dấu phẩy phân cách danh sách ví dụ: –

+0

Các vấn đề liên quan