1

シンプルな FB アプリケーションを作成していますが、奇妙なエラーが発生します。Default.aspx と Test.aspx の 2 つのページがあります。Default.aspx には次のものがあります。

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

次に、2 番目のページに移動するためのボタン:

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

最初のページでは、すべてが機能します。ユーザーがアプリケーションにこれらのアクセス許可へのアクセスを許可していない場合は、アクセス許可ダイアログ ボックスが表示されます。問題は2ページ目。FacebookWebContext のアクセス トークンにアクセスできることを期待していましたが、これは次のとおりです。

FacebookWebContext.Current.AccessToken

2ページ目に着地すると空です。

何故ですか?2 番目のページに移動した後、アクセス トークンにアクセスするにはどうすればよいですか?

前もって感謝します!

4

1 に答える 1

0

アンカータグの方がナビゲートしやすいです。また、必ず target="_top" を使用してください

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

ナビゲーションは、一番外側の iframe にある必要があります。ボタンを引き続き使用する場合は、signed_request の値を手動で渡すようにしてください。署名されたリクエストを渡す方法を知りたい場合は、mvc 3.0 Facebook アプリに投稿するときの問題を参照してください。

署名されたリクエストを入れた後でもナビゲートすると、URLが同じであるなどの機能が失われ、ブックマークに悪い. そのため、アンカー タグを使用することをお勧めします。

于 2011-09-16T13:56:03.280 に答える