0

ユーザーがキオスク アプリとして使用する Silverlight アプリがあります。1 人のユーザーが来て、アプリを使用し、Facebook にログインして自分のことを行い、次のユーザーが来てプロセスを再開し、Facebook にログインして自分のことをします。

問題は、Facebook から最初のユーザーをログアウトできないことです。

私は自分のアプリ内で Web ブラウザー コントロールを使用しています。これが少し古くなっていることはわかっていますが、Prabir のブログhttp://blog.prabir.me/post/Facebook-CSharp-SDK-の指示に従いました。 Logout.aspx、ログアウト機能を機能させるため。

ここに私のログアウト機能があります:

    private void SetFacebookLogoutSource()
    {
        var fbClient = new Facebook.FacebookClient();

        var logoutParameters = new Dictionary<string, object>
                  {
                      { "next", GenerateLoginUrl(fbClient, "publish_actions").AbsoluteUri }
                  };

        var logoutUrl = fbClient.GetLogoutUrl(logoutParameters);

        webBrowser.Navigate(logoutUrl);
    }

しかし、これは最後にログインしたユーザーの Facebook ウォールに移動するだけです。

GenerateLoginUrl メソッドは、最初にログイン URL を取得するために使用するものとして機能します。

何か案は?

ありがとう、グレッグ。

4

1 に答える 1

0

Facebook ではログアウトするために access_token が必要なようです (ただし、間違っている場合は修正してください)。

private void SetFacebookLogoutSource()
{
    var fbClient = new Facebook.FacebookClient();

    var logoutParameters = new Dictionary<string, object>
              {
                  { "next", GenerateLoginUrl(fbClient, "publish_actions").AbsoluteUri },
                  { "access_token", [user's_access_token] }
              };

    var logoutUrl = fbClient.GetLogoutUrl(logoutParameters);

    webBrowser.Navigate(logoutUrl);
}

別の問題が発生しました...アプリのアクセス許可が承認されない場合、access_key を取得できないため、ログアウトできず、ある種のリンボ状態のままです! Facebook API を使用する喜び :)

/グレッグ

于 2012-09-21T09:23:55.027 に答える