3

Windows Phone 8 で Facebook C# SDK を使用してFacebookでユーザーを認証しようとしています。

しかし、私が直面している問題は、ユーザーを認証するために開くダイアログにユーザー名とパスワードを入力するたびに、次のページが表示されることです。

WP8 FB ログインの問題

この後、私のプログラムは別のビューであるランディング ページにリダイレクトしません。認証が単一の LoginAsync 関数呼び出しに抽象化されるため、WebView を非表示にすることを提案する他のソリューションは適用できません。何をすべきかについて何か提案はありますか?

4

3 に答える 3

6

FB は、Windows Phone の Web ブラウザー コントロールを検出したときに、リダイレクト スクリプトにいくつかの変更を加えたようです。

C# SDK が行うことは、ログイン ページを " http://www.facebook.com ...." として生成することです。この URL を Web ブラウザー コントロールで開くと、" http://m.facebook.com ..." にリダイレクトされ、FB ログイン ページのモバイル バージョンが表示されます。

これは以前は問題がありませんでしたが、最近、FB がリダイレクトを行うときに、URL からパラメーター「display=page」も取り除きます。FB ログインが成功すると、このパラメータなしで「login_success.html」ページが開かれます。「display=page」パラメータが渡されない場合、デフォルトで「display=touch」になります。残念ながら、この URL は URL にトークン文字列を追加しないため、最初のスレッドに表示されたページが表示されます。

これに対する解決策は、以下のコードを使用してログイン URL を生成する代わりに、次のように修正することです。

オリジナル:

Browser.Navigate(_fb.GetLoginUrl(parameters));

修正:

var URI = _fb.GetLoginUrl(parameters).toString().replace("www.facebook.com","m.facebook.com");
Browser.Navigate(new Uri(URI));
于 2013-10-02T16:33:54.023 に答える