Volete fare due cose. Per prima cosa, per richiedere offline_access, è necessario modificare la funzione di accesso Javascript per richiedere l'accesso offline come segue. Questo è in 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>
Avanti, per ottenere il token di accesso, è sufficiente effettuare le seguenti operazioni in azione dopo che l'utente è autenticato:
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();
}
fonte
2010-11-19 22:50:08
hai preso questo risolto? Ho aggiunto il javascript FB.getLoginStatus che ha come risultato che l'utente ha effettuato l'accesso. Ma in C# utilizzando sdk l'app.Session è sempre nullo. – Danny
L'ho risolto, per favore vedi il consiglio di Nathan. Forse qualche problema con il tuo ID app? –
Non dimenticare di contrassegnare la domanda come accettata –