1

FB アプリケーション データを保持し、テスト ユーザーを一覧表示するデスクトップ アプリを作成しました。新しいプロファイルでブラウザーを開きたい (PHP facebook API のセッションの問題のため、FB ではなくブラウザー プロファイル - ドメインのアプリ セッションに参加したくない)。

しかし問題は、Facebook のログイン URL が機能しているか、ランダムに機能していないことです。FirefoxとChromeを試しました。

-no-remote-p "RANDOM_PROFILE"、および-CreateProfile実行前にFirefox を実行して、そのプロファイルで URL を開きます。

Chrome with --profile-directory="RANDOM_DIR"(先ほど作成したディレクトリ)。

ブラウザー プロファイルの管理は、両方のブラウザーで適切に機能します。しかし、ほとんどの場合、Facebook テスト ユーザーのログイン URL でブラウザーを開くと、メイン ページにリダイレクトされるだけです。

また、いくつかの PHP ページを作成しました。

  • しばらくすると、window.location によってログイン URL にリダイレクトされます
  • スリープ後に header('Location: ...') でログイン URL にリダイレクトするもの
  • <a href...>ログイン URL へのタグ付きの 1 つ。

3番目のオプションのみが機能しますが、約20%のケースで機能します(そのリンクを何度もクリックして、新しいタブで複数回開くと機能する場合があります)

ロギングが正常に機能する Facebook ログイン URL を使用して新しいブラウザ インスタンスを起動するにはどうすればよいですか?

編集: 私のログ URL は常にログイン試行の直前に FB から取得されるため、有効期限が切れることはありません。

4

1 に答える 1

2

私はついにこれを手に入れました。

問題は、テスト ユーザーのログイン URL を使用する前に、 http ://facebook.com を少なくとも 1 回 (おそらくいくつかの Cookie を設定するために) ロードする必要があることです。

そのため、スクリプトを使用して Facebook を iframe で開き、しばらくしてからログイン URL にリダイレクトします。

<script>
setTimeout(function(){
window.location = "<?php echo $_GET['url']; ?>";
} , 2000 );
</script>
<iframe src="http://facebook.com/"></iframe>

iframe 上の facebook は head+body のみの空白ページとして読み込まれますが、これは機能していることに注意してください。

次に、このスクリプトを使用して、URL エンコードされた Test-User-Login-URL を 'url' GET パラメータとして Chrome コマンド ラインに渡すことで、テスト ユーザーにログインできます。

アプリ ドメインで古いセッションを取得しないように、Chrome プロファイル用に新しく作成されたディレクトリを使用します。

また、引数を使用することをお勧めします: --start-maximized, --no-default-browser-check,--no-first-run

更新:要求されたログイン URL は、このメソッドで一度だけ機能することに注意してください (およびおそらく他のメソッド - チェックされていません)

于 2012-07-20T07:40:18.840 に答える