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,但最终用户必须向下滚动才能加载信息,或者您可以通过 Javascript 破解它。

不(以及为什么不应该):我不是法律人,但我已经开发了足够长的时间,知道只要平台为您提供 API,您就应该使用它。为什么?因为他们可以控制您正在阅读的信息,并且他们可以通过这种方式保护他们的用户信息。

这实际上是一条微妙的线,因为有时您无需使用网站 API 就可以增强网站体验(有时他们甚至没有)。如果您实际上正在改善用户体验,那么这甚至会受到赞赏。在这种情况下认为,我不会这样做,因为:

  • 这是Facebook,我很确定他们在某些服务条款中有一行描述了我刚刚写的关于通过外部脚本读取用户信息的内容。
  • 抓取您的数据的外部应用程序从第一天起就名声不佳(自动发帖、诈骗、报废信息等)
  • Facebook API 现在基于Oauth2,其基础是为了保护用户;通过令牌拒绝,用户可以随时停止应用程序读取他/她的数据,而您的应用程序没有这种机制(可能是卸载,但您可能已经存储了他/她的数据)
  • 请求许可并不难,你会为自己省去很多麻烦。

如何以正确的方式做到这一点?请求应用程序 ID,并在后台页面中加载 facebook SDK。提示用户权限(是的,正确的方法包括向用户询问您可以阅读的内容的权限,以便如果您行为不端,他/她可以拒绝您访问它们),然后用它查询 Facebook API。

想想看。您可以创建一个扩展程序,在用户登录他/她的银行时读取用户页面的内容。或者他的邮箱。实际上,用户在浏览器窗口中看到的任何东西都可以通过扩展来检索。如果无法控制从用户那里获取哪些信息,这对用户来说是极其危险的!

先征求许可。不要成为那个人;)

于 2012-12-28T17:00:50.713 回答