我正在尝试为 Facebook 构建一个 google chrome 扩展。
我应该能够访问 facebook api,而无需实际要求用户为我的扩展程序明确地进行身份验证。
有没有办法做到这一点?
我正在尝试为 Facebook 构建一个 google chrome 扩展。
我应该能够访问 facebook api,而无需实际要求用户为我的扩展程序明确地进行身份验证。
有没有办法做到这一点?
答案是肯定的和否定的。
是的:您可以通过读取窗口文档的内容脚本“读取”他们在页面中加载的内容。一个很好的例子可能如下。
在 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 就可以增强网站体验(有时他们甚至没有)。如果您实际上正在改善用户体验,那么这甚至会受到赞赏。在这种情况下认为,我不会这样做,因为:
如何以正确的方式做到这一点?请求应用程序 ID,并在后台页面中加载 facebook SDK。提示用户权限(是的,正确的方法包括向用户询问您可以阅读的内容的权限,以便如果您行为不端,他/她可以拒绝您访问它们),然后用它查询 Facebook API。
想想看。您可以创建一个扩展程序,在用户登录他/她的银行时读取用户页面的内容。或者他的邮箱。实际上,用户在浏览器窗口中看到的任何东西都可以通过扩展来检索。如果无法控制从用户那里获取哪些信息,这对用户来说是极其危险的!
先征求许可。不要成为那个人;)