【问题标题】:Chrome extension for facebook脸书的 Chrome 扩展
【发布时间】:2012-12-29 01:00:50
【问题描述】:

我正在尝试为 Facebook 构建一个 google chrome 扩展程序。

我应该能够访问 facebook api,而无需实际要求用户为我的扩展程序进行显式身份验证。

有没有办法做到这一点?

【问题讨论】:

  • 您想从用户的 facebook 中检索哪些信息?使用用户 ID,您可以通过Graph API 阅读尽可能多的内容:graph.facebook.com/cocacola
  • 我想获取用户曾经发布的所有帖子(公开或非公开)。
  • @TusharMathur:您是否要求在没有任何身份验证的情况下获取用户详细信息?
  • @Sudarshan。由于这将是一个扩展,所有请求都将由登录用户进行身份验证。
  • @TusharMathur:那么您无需任何额外的身份验证即可实现这一目标

标签: facebook google-chrome-extension


【解决方案1】:

答案是肯定的和否定的。

是的:您可以通过读取窗口文档的内容脚本“读取”他们在页面中加载的内容。以下是一个很好的例子。

在 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 即可增强网站体验(有时他们甚至没有 API)。如果您实际上正在改善用户体验,这甚至会受到赞赏。在这种情况下认为,我不会这样做,因为:

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

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

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

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

【讨论】:

  • 我非常感谢您为解释请求用户许可的逻辑方面所做的努力。就问题而言,如果我们不使用 api 请求许可,我们将仅获得页面上可见的数据。因此,我认为更准确的答案是否定的。
  • 同意,尽管您应该避免提出问题:您问是否有办法做到这一点,正如我在“是”部分所述,确实有。如果用户从未登录过 Facebook.com,那么正如您在评论中正确陈述的那样,那么准确的答案是否定的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-19
  • 1970-01-01
  • 2015-08-06
  • 1970-01-01
  • 1970-01-01
  • 2012-01-17
  • 2023-03-31
相关资源
最近更新 更多