10

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

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

问题:

  1. 我不想使用我的 fb 帐户进行发送 - 我想从“系统 1”、“系统 2”接收消息,因为我有多个系统要管理。
  2. bash 部分对我来说很容易,我需要 Facebook 解决方案的提示:
    • 我是否必须获得 FacebookAppId(我必须为每个系统创建 AppId 还是只创建一个 AppId)
    • 如何使用我的 Facebook 帐户“加入/确认/接受”“系统 1”帐户
    • 是否可以向多个 FBAccount 发送消息
    • 任何其他提示我应该寻找什么。

我找到了通知应用程序,但我认为它不会向信使发送消息,所以它没有用。

4

6 回答 6

6

Chat API 已在 Graph API v2.0 中删除,无法再使用 API 发送消息。顺便说一句,消息是用于真实用户之间的通信,无论如何它们不应该用作通知系统。对于此类警告恕我直言,短信仍然是一个不错的选择。

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

页面只能回复消息 - 他们不能发起对话。此外,一个页面只能回复两次特定消息,对方必须先回复才能再次回复。

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

于 2015-05-15T08:03:59.413 回答
2

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

于 2016-07-31T06:17:37.220 回答
1

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

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

于 2017-08-01T17:34:31.160 回答
1

所以有几个命令行应用程序可以做到这一点。

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

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

于 2017-04-04T17:38:51.137 回答
0

自动 Facebook 消息

我一直在寻找类似的东西,发现梅塞尔是要走的路。

解决方案

查看这个名为 Messer https://github.com/mjkaufer/Messer
的 repo (它也适用于 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了项目文件夹中的可执行文件。
  • 使用双引号转义而不是单引号,以便能够在命令中使用变量。
  • 缺点:Messer 只能发送,不能接收。
于 2019-03-29T15:51:51.647 回答
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"
于 2018-10-26T15:32:18.227 回答