Question

Je construis une simple application FB mais j'obtiens une erreur étrange. J'ai deux pages: default.aspx et test.aspx. Dans Defauft.aspx, j'ai ce qui suit:

var auth = new CanvasAuthorizer
{
    Permissions = new[] { "user_about_me", "email" },
    CancelUrlPath = "xxxxxxxxxxxxxxx",
    ReturnUrlPath = "xxxxxxxxxxxxxx"
};

if (!FacebookWebContext.Current.IsAuthorized())
{
    LitMsg.Text = "You must give permissions to this application";
}
else
{
    if (auth.Authorize())
    {
         // Token
         LitToken.Text = FacebookWebContext.Current.AccessToken;
    }
}

Puis un bouton pour accéder à la deuxième page:

protected void LbStart_Click(object sender, EventArgs e)
{
    Response.Redirect("Test.aspx");
}

Sur la première page, tout fonctionne. Si l'utilisateur n'a jamais autorisé l'application à avoir accès à ces autorisations, il sera affiché la boîte de dialogue des autorisations. Le problème est dans la deuxième page. Je m'attendais à avoir accès au jeton d'accès dans FacebookWebContext, mais ceci:

FacebookWebContext.Current.AccessToken

est vide lorsque j'atterris sur la deuxième page.

Pourquoi donc? Comment avoir accès au jeton d'accès après avoir accédé à la deuxième page?

Merci d'avance!

Était-ce utile?

La solution

La balise d'ancrage est plus facile à naviguer. et assurez-vous également d'utiliser le Target = "_ TOP"

<a href="http://apps.facebook.com/a/test.aspx" target="_top" />

La navigation doit être dans l'iframe le plus extérieur. Si vous souhaitez toujours utiliser le bouton, assurez-vous de passer manuellement la valeur de Signed_Request. Faire référence à Problème lors de la publication de l'application Facebook MVC 3.0 Si vous voulez savoir comment passer la demande signée.

Si vous naviguez même après avoir mis la demande signée, vous perdez toujours des fonctionnalités comme l'URL étant la même, ce qui est mauvais pour le bookmarking. Le moyen préféré est donc d'utiliser des balises d'ancrage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top