如何从linux控制台发送facebook消息(命令行)

时间:2015-05-15 07:57:29

标签: linux facebook bash command-line facebook-messenger

过去很多管理员都使用sms-gate从他们的系统发送重要信息,例如“断电,UPS现在正在工作!”,“上电,UPS关闭!”或“CPU温度过高!”。今天在Facebook时代我们使用messenger而不是SMS,所以我想知道我是否可以为这样的事情创建一个命令行bash或php脚本。

这个想法 - cron每10分钟检查一次这个条件,如果是,则向我的信使发送消息。

问题:

  1. 我不想用我的fb帐户发送 - 我想收到消息 从“系统1”,“系统2”,因为我有多个系统 管理员。
  2. bash部分对我来说很容易,我需要Facebook解决方案的提示:
    • 我必须得到FacebookAppId(我是否必须为其创建AppId) 每个系统或只有一个AppId)
    • 如何使用我的Facebook帐户“加入/确认/接受”“系统1”帐户
    • 是否可以向多个FBA帐户发送邮件
    • 任何其他提示我应该寻找什么。
  3. 我找到了通知应用程序,但我认为它不会向Messenger发送消息,所以它将毫无用处。

6 个答案:

答案 0 :(得分:6)

Chat API已使用Graph API的v2.0删除,无法再使用API​​发送消息。顺便说一下,消息是用于真实用户之间的通信,它们不应该用作通知系统。对于那些警告,短信仍然是一个很好的选择。

使用Page和/conversations端点也不起作用:

  

页面只能回复消息 - 他们无法发起对话。此外,一个页面只能响应特定消息两次,另一方必须在他们再次回复之前做出响应。

来源:https://developers.facebook.com/docs/graph-api/reference/v2.3/conversation/messages#publish

答案 1 :(得分:2)

我认为,出于特殊目的,推特可能是更好的选择。 Twitter接受来自API的推文。因此,您需要设置一个帐户,以定期或事件触发方式发布您的系统状态,并在您自己的个人帐户中关注它。 并且已经有很多开源项目专注于通过API进行推文,t是我目前使用的。

答案 2 :(得分:1)

我刚刚为该用例发布了一项服务: https://www.nimrod-messenger.io/

它处于早期阶段。反馈非常受欢迎: - )

答案 3 :(得分:0)

因此,有几个命令行应用程序可以执行此操作。

有一个libpurple扩展(https://github.com/dequis/purple-facebook)可以工作。然而紫色似乎不支持消息历史的想法。这是一个耻辱,因为我想大多数人使用Facebook是离线消息的默认方式。

还有一个用于facebook的命令工具:https://www.npmjs.com/package/fb-messenger-cli,它支持历史记录。不幸的是,这是一个TUI而不是命令行应用程序,似乎并不依赖于一个单独的Facebook库。 一些黑客或可怕的期望胶水可以解决这个问题。

答案 4 :(得分:0)

以bash脚本发送Facebook消息

想法

我需要一个检查服务器的脚本(可在我的工作/本地Mac上运行)。如果有问题,脚本会在Facebook上向我发送消息。

依赖项

需要安装: https://github.com/mjkaufer/Messer

解决方案,bash脚本

FB_SENDER_LOGIN=""
FB_SENDER_PASSWORD=""

function send_fb_message {
    FB_MESSER_COMAND="messer $FB_SENDER_LOGIN $FB_SENDER_PASSWORD --command='m \"$1\" $2'"
    eval "$FB_MESSER_COMAND"
}

RECIPIENT_NAME_DISPLAYED_IN_FACEBOOK_WEBSITE="Vasily Bodnarchuk"
MESSAGE="Houston, we have a problem!!!"
send_fb_message "$RECIPIENT_NAME_DISPLAYED_IN_FACEBOOK_WEBSITE" "$MESSAGE"

答案 5 :(得分:0)

自动Facebook消息

我一直在寻找类似的东西,发现梅塞尔是行之有效的方式。

解决方案

看看这个名为Messer https://github.com/mjkaufer/Messer的仓库
(它也适用于2FA,但不适用于应用密码)

实施

  1. 请参阅自述文件

  2. 我需要它自动运行,因此我将其与bash脚本一起使用为非交互模式:

message="Hey, what\'s up bro"
FULLPATH/node_modules/.bin/messer --command="m \"Myfriends Name\" $message"
  • 我不喜欢通过NPM在全球范围内安装类似的东西,所以我在项目文件夹中使用了/node_modules/.bin/messer可执行文件。
  • 使用双引号而不是单引号可以在命令中使用变量。
  • 缺点:梅塞尔只能发送,不能接收。