在没有用户身份验证的情况下实施 Facebook 的 Graph API

Implementing Facebook's Graph API without user authentication

我是 Facebook Graph APIFacebook JavaScript SDK 的新手,但我想要了解一些事情:

Facebook 默认允许的这些 "scopes" 实际上是我在 验证 时从用户那里获得的信息,对吗?

只是为了说明我想做什么,我想通过 Facebook Graph APIgh-pages GitHub 上的分支,但我不喜欢必须对有权访问该页面的每个用户进行身份验证的想法。

我想制作我的用户信息 public,但不想显示我的访问令牌,因为它是开源的,最终可能会变得危险。

如果您想查看我的存储库并对项目有更好的了解。您可以访问 https://github.com/iszwnc/rye

如果我回顾一下:

  • 您不想共享您的应用访问令牌(很好!),
  • 您不希望您的用户进行身份验证。

基本上,您不能隐藏您的令牌并且让您的用户直接查询 Facebook。您需要 一台机器上的一些服务器端代码,这将是唯一访问 Facebook 的机器。您的服务器将扮演 Facebook 和您的用户之间的接口角色。所以你必须:

  • 使用服务器端代码(即 Node.js)从服务器执行 API 调用,
  • 将您想要的信息保存在数据库中。这是可选的,但最好避免多次检索相同的信息,从而避免您未来的 100 个用户(自愿或非自愿)达到您的应用 API 限制。
  • 让用户使用一些客户端代码(即 AngularJS)查询 您的 服务器,以检索您且只有您知道的内容(记住,您拥有令牌)。

关于Github,不要在上面分享你的代币。如果人们想要 运行 您的应用,他们可以生成自己的令牌。这里有几个建议:

  • 将您的令牌添加到您可以在启动应用程序之前设置的环境变量(不要忘记在您的自述文件中提及),
  • 将您的令牌添加到文件中:

    1. 创建一个包含空标记的 credentials.js 文件:

      // Please use your own token
      var APP_TOKEN = '';
      
    2. 提交文件到 Github,

    3. 有一个 .gitignore 文件,其中包含 credentials.js
    4. var APP_TOKEN = 'now-you-can-put-your-token-here';

祝你的项目好运,它看起来令人兴奋:-)