带有 Node JS 和 Sails JS 的 Facebook Graph API

Posted

技术标签:

【中文标题】带有 Node JS 和 Sails JS 的 Facebook Graph API【英文标题】:Facebook Graph API with Node JS and Sails JS 【发布时间】:2015-06-03 02:44:03 【问题描述】:

正如我在之前的帖子中所说,我正在学习如何使用 Node JS 和 Sails JS。现在我正在尝试将 facebook 的图形 API 集成到我的 Web 应用程序中。我搜索并浏览了 facebook 的开发者网站,但不知何故我仍然很难理解我应该做什么。我已经在 facebook 中有一个应用程序,所以我已经有了应用程序 ID 等等。

现在,我的 login.ejs 中的视图下已经有一个 facebook 登录按钮

 <fb:login-button autologoutlink="true" onlogin="OnRequestPermission();">
 </fb:login-button>

还有加载在我的 layout.ejs 中的 facebook javascript sdk

<script>
  window.fbAsyncInit = function() 
    FB.init(
      appId      : 'myAPPID',
      xfbml      : true,
      version    : 'v2.3',
      status     : true
    );
  ;

  (function(d, s, id)
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) return;
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   (document, 'script', 'facebook-jssdk'));
</script>

问题是,我将如何获得用户访问令牌以及存储它的最佳方式是什么?我将如何在我的控制器中使用图形 API?我应该安装节点模块还是自己创建?除了节点和帆之外,使用图形 api 以外的 API(如 twitter 的 api)的最佳方法是什么?

谢谢!

【问题讨论】:

【参考方案1】:

您可以通过注册要在 Facebook JAvaScript SDK 的auth.login 事件上执行的回调方法来获取访问令牌。这记录在 [此处]。(https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/v2.3)

但实际上,如果您使用的是 JavaScript SDK,则不需要处理甚至存储访问令牌。你可以打电话给例如FB.api(path, method, params, callback) 发出 Graph API 请求,这将确保访问令牌作为请求的一部分发送。

【讨论】:

以上是关于带有 Node JS 和 Sails JS 的 Facebook Graph API的主要内容,如果未能解决你的问题,请参考以下文章

Sails.js 中的 JWT 和护照

node.js---sails项目开发

带有sails.js 和sails-postgresql 的数据库模式

sails.js 和多个参数

Bcrypt:带有 Docker 和 Sails.JS 的无效 ELF 标头

使用 Sails.JS 框架的 Node.JS -- Passport:没有在名称下注册策略:facebook