无需用户身份验证即可实现Facebook的Graph API

时间:2016-05-08 11:01:36

标签: javascript facebook facebook-graph-api facebook-javascript-sdk

我是 Facebook Graph API Facebook JavaScript SDK 的新手,但我想知道一些事情:

  • 有没有办法将我的访问令牌放在开源应用程序中而不实际显示它?我使用的是GitHub,出于安全考虑,我想将其设为私有。
  • 我是否可以在不要求用户验证的情况下显示我的用户信息?
  • 我可以在Facebook Developers App中允许更多"范围"公开分享?例如,user_photos,user_posts,user_likes,user_status等......

这些"范围" Facebook默认情况下实际上是我从用户那里获得的信息,而我是认证他们是对吗?

为了澄清我想做的事情,我想通过 gh-pages 分支中的 Facebook Graph API 分享我的Facebook帐户的相关信息在GitHub上,但我不想要对每个有权访问该页面的用户进行身份验证。

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

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

1 个答案:

答案 0 :(得分:2)

如果我回顾一下:

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

基本上,您无法隐藏您的令牌让您的用户直接查询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
    4. credentials.js文件
    5. var APP_TOKEN = 'now-you-can-put-your-token-here';

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