4

特定のページの投稿を自動的にいいね! する Chrome 拡張機能を作成します。シンプルなポップアップ コントローラーとバックグラウンド スレッドを使用して、fb api をインタラクティブに処理します。

公式の例の方法では、facebook js api を拡張ページにロードできません。

スクリプトjssdkがロードされ、chrome 開発者ツールによってチェックされて実行されました。

しかし、window.FB はロードされたスクリプトによって定義されていません!!!

  • スクリプトタグも手動で追加します。
  • バックグラウンドスレッドとポップアップウィンドウの両方に表示されました。
  • iframe を挿入してページをロードすると、window.FB のロードに成功し、ログイン/認証ウィンドウがポップアップします。しかし、クロスドメインの問題がありました!
  • div#fb-root が存在します。
  • menifest.jsonにはcontent_security_policyがあります
4

1 に答える 1

0

解決策はありませんが、これはあなたを正しい方向に導くかもしれません。

問題は、拡張ドキュメントの document.location にある可能性があります。拡張スコープで実行される JavaScript の場合、プロトコルは「chrome-extension://」ですが、多くの JS ライブラリは「http」または「https」のいずれかを想定しています。

jssdk ファイルの次の行を見ると、FB もこの仮定を行っているようです。

var k = typeof j == 'undefined' ? location.protocol.replace(':', '') : j ? 'https' : 'http';

上記の行を次のように置き換えて、これらのケースをデバッグしてみてください。

var k = 'http';

お役に立てれば。

于 2014-03-29T08:43:31.330 に答える