Vous voudrez faire deux choses. Tout d'abord, pour demander offline_access, vous devez modifier la fonction de connexion Javascript pour demander l'accès hors connexion comme suit. C'est dans 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>
Ensuite, pour obtenir le jeton d'accès, vous venez de faire ce qui suit dans l'action après que l'utilisateur est authentifié:
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();
}
Avez-vous régler cette question? J'ai ajouté le FB.getLoginStatus javascript qui résulte dans l'utilisateur est connecté. Mais dans C# en utilisant le sdk l'application.Session est toujours nulle. – Danny
Je l'ai fait résoudre, s'il vous plaît voir le conseil de Nathan. Peut-être un problème avec votre identifiant d'application? –
N'oubliez pas de marquer la question comme acceptée –