Как отправить сообщение facebook из консоли Linux (командная строка)

В старые времена многие администраторы использовали sms-шлюзы для отправки важной информации из своих систем, например. "Выключите питание, ИБП работает!", "Включите питание, ИБП выключен!" или «Слишком высокая температура процессора!». Сегодня, в эпоху Facebook, мы используем мессенджер вместо SMS, поэтому мне интересно, могу ли я создать bash или php-скрипт командной строки для такой вещи.

Идея - cron каждые 10 минут проверяет условие и если оно истинно, отправляет сообщение в мой мессенджер.

Проблемы:

  1. Я не хочу использовать свою учетную запись fb для отправки - я хочу получать сообщения от «Системы 1», «Системы 2», потому что у меня есть более одной системы для администрирования.
  2. The bash part is easy for me, I need tips for Facebook solutions:
    • do I have to get FacebookAppId (and do I have to create AppId for each system or just one AppId)
    • как «присоединиться/подтвердить/принять» учетную запись «Система 1» с моей учетной записью Facebook
    • можно ли отправлять сообщения более чем на одну учетную запись FBA
    • любые другие подсказки, что я должен искать.

Я нашел приложение Notification, но я думаю, что оно не отправляет сообщение в мессенджер, так что это было бы бесполезно.


person Tomasz Brzezina    schedule 15.05.2015    source источник
comment
Я думал, что в Facebook есть система, в которой вы можете обновлять свой статус по электронной почте? Если да, то почему бы не сделать это (но сначала ограничить свои посты определенной аудиторией [также известной как вы])? Затем вы можете подписаться на учетную запись и получать уведомления о появлении нового обновления. К сожалению, правила Facebook запрещают иметь много фиктивных учетных записей, но, насколько мне известно, они позволяют разработчикам иметь дополнительную учетную запись; вы можете добавить «Сервер 1», «Сервер 2» и т. д. в обновлении статуса.   -  person AStopher    schedule 15.05.2015
comment
нет, они НЕ разрешают и дополнительный аккаунт для разработчиков. и обновлять свой статус, чтобы все друзья видели, что это может быть очень плохой идеей. это предупреждение только для себя.   -  person luschn    schedule 15.05.2015


Ответы (6)


Chat API был удален с версии 2.0 Graph API, больше нет возможности отправлять сообщения с помощью API. Кстати, сообщения предназначены для общения между реальными пользователями, их ни в коем случае нельзя использовать как систему уведомлений. SMS по-прежнему хороший вариант для таких предупреждений, имхо.

Использование страницы и конечной точки /conversations также не сработает:

Страницы могут только отвечать на сообщения — они не могут инициировать беседу. Кроме того, Страница может ответить только дважды на определенное сообщение, другой стороне придется ответить, прежде чем она сможет ответить снова.

Источник: https://developers.facebook.com/docs/graph-api/reference/v2.3/conversation/messages#publish

person luschn    schedule 15.05.2015
comment
Например, SMS платные или ограничены 10 в месяц, и их легко реализовать из командной строки, поэтому я ищу более дешевую альтернативу (10 в день или больше). Но я не понимаю, почему сообщения только для общения между реальными пользователями - это политика ФБ? - person Tomasz Brzezina; 15.05.2015
comment
это здравый смысл :) - и да, это на самом деле тоже в политике. даже если бы API-интерфейс чата все еще существовал, каждое сообщение должно было бы на 100% создаваться пользователем, а поддельные учетные записи не допускаются. вам нужно будет создать поддельную учетную запись / учетную запись разработчика, чтобы отправлять себе сообщения › не разрешено. - person luschn; 15.05.2015
comment
Как насчет учетной записи страницы? Я не могу сейчас проверить, могу ли я отправить сообщение как страница, а не пользователь - person Tomasz Brzezina; 15.05.2015
comment
вы можете только отвечать на комментарии, вы не можете инициировать сообщения как страницу. все это есть в документах фейсбука. я добавил соответствующие части в свой ответ. - person luschn; 15.05.2015

Я думаю, что для ваших особых целей твиттер может быть лучшим вариантом. Twitter принимает твиты от API. Итак, что вам нужно сделать, это настроить учетную запись для публикации состояния вашей системы либо регулярно, либо по событиям, и следить за ним в своей личной учетной записи. И уже существует множество проектов с открытым исходным кодом, посвященных твиттингу через API, и я в настоящее время занимаюсь t. с использованием.

person huangzonghao    schedule 31.07.2016

Для этого есть несколько приложений командной строки.

Существует расширение libpurple (https://github.com/dequis/purple-facebook) который работает. Однако фиолетовый, похоже, не поддерживает идею истории сообщений. Это позор, так как я полагаю, что офлайн-сообщения — это способ, которым большинство людей по умолчанию используют Facebook.

Для Facebook также существует одноразовый командный инструмент: https://www.npmjs.com/package/fb-messenger-cli, который поддерживает историю. К сожалению, это TUI, а не приложение командной строки, и, похоже, оно не зависит от отдельной библиотеки facebook. Некоторый взлом или ужасный клей ожидания могут обойти это.

person Att Righ    schedule 04.04.2017


Отправка сообщения facebook в скрипте bash

ИДЕЯ

Мне нужен скрипт (который работает на моем рабочем/локальном Mac), который проверяет server. Если возникнут проблемы, скрипт будет присылать мне сообщения на 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"
person Vasily Bodnarchuk    schedule 26.10.2018

Автоматическое сообщение в Facebook

Я искал что-то подобное и обнаружил, что Messer — это то, что нужно.

Решение

Посмотрите на этот репозиторий под названием 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 в папке проекта.
  • Использованы двойные кавычки вместо одинарных, чтобы иметь возможность использовать переменные внутри команды.
  • Недостаток: Мессер может только отправлять, но не получать.
person Community    schedule 29.03.2019