从 Node.js 服务器自动发布到我的 Facebook 页面

Posted

技术标签:

【中文标题】从 Node.js 服务器自动发布到我的 Facebook 页面【英文标题】:Automatic post to my facebook page from Node.js server 【发布时间】:2014-12-23 17:00:13 【问题描述】:

我有一个运行社交网络站点的 Node.js 服务器,并且我还有一个用于该站点的 facebook 页面。对于用户在我的网站上执行的某些操作,我想在我的应用程序的 Facebook 页面上发布详细信息。

我参考了 Thuzi facebook node sdk here 来了解如何发布到 facebook 墙。但是,它需要应用 ID、应用机密和临时访问令牌。应用程序 ID 和应用程序密码是恒定的,因此我可以将它们放在我的配置文件中的某个位置并从那里使用。但是如何在没有前端交互的情况下获取访问令牌?所有帖子将仅由我们的应用程序发布,也将在我们自己的页面上发布。我只是希望这由最终用户的操作触发。有什么帮助吗?

顺便说一句,我正在使用 Sails.js 框架。

【问题讨论】:

嗨,你能分享我使用 Thuzi facebook node sdk 的代码吗? 【参考方案1】:

您需要为此使用扩展页面令牌,您只需创建一次,它将永远保持有效。您将使用页面令牌发布“作为页面”。如何获取扩展页面令牌:

创建应用程序 使用Graph API Explorer 生成用户访问令牌(通过使用manage_pagespublish_actions 权限授权应用程序) 延长用户访问令牌(有效期 60 天) 通过调用 /me/accounts 请求扩展页面令牌

将该扩展页面令牌存储在您的服务器上并将其用于posting on the Page wall。

这里有一些额外的资源,详细解释了一切:

https://developers.facebook.com/docs/facebook-login/access-tokens/ https://developers.facebook.com/docs/graph-api/reference/v2.1/page/feed http://www.devils-heaven.com/facebook-access-tokens/ http://www.devils-heaven.com/extended-page-access-tokens-curl/

【讨论】:

谢谢它的工作!只是跟进。我将发布包含我网站的一些内容的 url,我希望它显示为卡片。我怎样才能做到这一点,否则 Facebook 会自动做到这一点? “卡”是什么意思?内容如何可见取决于许多因素,如果您发布图片,请务必遵循以下指南:developers.facebook.com/docs/sharing/best-practices#images 例如,当我发布指向 youtube 视频的链接时,它不会仅显示为 URL,而是显示为带有 youtube 视频缩略图的卡片。我想确保我的链接也以类似的方式显示,而不仅仅是 URL。链接将指向我们网站上的一篇文章。 查看 facebook 文档中有关页面提要的“链接”字段(带有“图片”和其他内容)。确保你正确地包含它。 看一下第三方概览:developers.facebook.com/docs/other-sdks【参考方案2】:

我现在也在对此进行更多研究,因为我正在为此开发一个节点模块。

直到现在我才知道我们可以创建一个临时 access_token,然后我们可以将该令牌延长至最多 60 天。

为此,在获取临时令牌后,您需要调用此 url 以获取有效期为 60 天的访问令牌。

https://graph.facebook.com/oauth/access_token?client_id=&client_secret=&grant_type=fb_exchange_token&fb_exchange_token=

【讨论】:

以上是关于从 Node.js 服务器自动发布到我的 Facebook 页面的主要内容,如果未能解决你的问题,请参考以下文章

Node.js - 开发中的自动刷新

如何使用 promise 将数组从我的模块返回到我的 API?异步函数和承诺 - Node.js

当服务器关闭/崩溃时,Node JS 会自动重启所有永远的 JS 进程

使用 face-api.js 包 (node.js) 时导入 @tensorflow/tfjs-node 的问题

如何将 node.js 服务器变量传递到我的 angular/html 视图中?

如何将 CSV 从 React 应用程序发送到 Node.js 服务器?