0

Facebook用のGoogle Chrome拡張機能を構築しようとしています。

実際にユーザーに拡張機能の明示的な認証を求めることなく、Facebook API にアクセスできるはずです。

それを行う方法はありますか?

4

1 に答える 1

0

答えはイエスとノーです。

はい:ウィンドウ ドキュメントを読み取るコンテンツ スクリプトを介して、ページにロードされたものを「読み取る」ことができます。良い例は次のとおりです。

manifest.json で

"content_scripts" : [{
  "matches" : ["http://www.facebook.com/*"],    
  "js" : ["js/vendor/jquery.min.js", "js/content.js"],
  "run_at" : "document_end"
}]

js/content.js 内

var document = jQuery(window.document);
var posts = document.find("div[role='article']");

そして、ユーザーが望むだけ、またはページが読み込まれるだけ読むことができます。ページに新しいコンテンツがあるかどうか、または新しい要素が dom に追加されたかどうかをチェックするある種のタイムアウト メカニズムを持つことができますが、最後にユーザーは情報をロードするために下にスクロールする必要があります。

いいえ (そしてなぜそうすべきではないのか): 私は法律家ではありませんが、プラットフォームが API を提供するときはいつでも、それを使用することになっていることを知るのに十分長い間開発してきました。なんで?彼らはあなたが読んでいる情報を制御でき、その方法でユーザー情報を保護できるからです.

これは実際にはデリケートな境界線です。Web サイト API を使用しなくても Web サイトのエクスペリエンスを向上できる場合があるためです (API を使用していない場合もあります)。これは、実際にユーザー エクスペリエンスを改善している場合でも高く評価されます。この場合、私はそれをしません。

  • それはFacebookです。利用規約の一部に、外部スクリプトを介してユーザーの情報を読み取ることについて私が書いた内容を説明する行があると確信しています。
  • データをクロールする外部アプリケーションは、最初から悪評がありました(自動投稿、詐欺、情報の破棄など)。
  • Facebook API は現在、ユーザーを保護するために作成されたOauth2に基づいています。トークンの拒否により、ユーザーはアプリケーションが自分のデータを読み取るのをいつでも停止できますが、アプリケーションにはそのためのメカニズムがありません (アンインストールは可能ですが、既にデータを保存している可能性があります)。
  • 許可を求めるのはそれほど難しいことではなく、多くの手間を省くことができます。

正しいやり方は?アプリケーション ID を要求し、Facebook SDK をバックグラウンド ページにロードします。ユーザーのアクセス許可を求めます (はい、正しい方法には、読み取り可能な内容についてユーザーに許可を求めることが含まれます。これにより、不正行為を行った場合にアクセスを拒否できます)、それを使用して Facebook API にクエリを実行します。

考えてみてください。ユーザーが自分の銀行にログインするたびにユーザー ページのコンテンツを読み取る拡張機能を作成できます。または彼のメール。実際、ブラウザ ウィンドウ内でユーザーが見るものはすべて、拡張機能によって取得できます。ユーザーからどの情報が取得されるかを制御できない場合、これはユーザーにとって非常に危険です!

最初に許可を求めてください。その男にならないでください;)

于 2012-12-28T17:00:50.713 に答える