@Male3531
Python developer

Как сделать так чтобы бот в фейсбуке написанный на языке Python умел ставить лайки?

Бот написан на языке Python используются фреймворк Flask и библиотеки pumessenger и request.Сейчас он просто рандомно отвечает на любой отправленный текст или фото,видео,GIF и.т.д.
Теперь мне нужно чтобы он мог ставить лайки на посты.Пример работы:Я посылаю боту ссылку на пост, и бот по этой ссылке лайкает пост по этой ссылке.

import random
from flask import Flask, request
from pymessenger.bot import Bot

app = Flask(__name__)

ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN'
VERIFY_TOKEN = 'YOUR_VERIFY_TOKEN'

bot = Bot(ACCESS_TOKEN)

#Получать сообщения, посылаемые фейсбуком нашему боту мы будем в этом терминале вызова
@app.route('/', methods=['GET', 'POST'])
def receive_message():
if request.method == 'GET':
# до того как позволить людям отправлять что-либо боту, Facebook проверяет токен,
# подтверждающий, что все запросы, получаемые ботом, приходят из Facebook
token_sent = request.args['hub.verify_token']
return verify_fb_token(token_sent)
# если запрос не был GET, это был POST-запрос и мы обрабатываем запрос пользователя
else:
# получаем сообщение, отправленное пользователем для бота в Facebook
output = request.get_json()
for event in output['entry']:
messaging = event['messaging']
for message in messaging:
if message.get('message'):
#определяем ID, чтобы знать куда отправлять ответ
recipient_id = message['sender']['id']
if message['message'].get('text'):
response_sent_text = get_message()
send_message(recipient_id, response_sent_text)
#если пользователь отправил GIF, фото, видео и любой не текстовый объект
if message['message'].get('attachments'):
response_sent_nontext = get_message()
send_message(recipient_id, response_sent_nontext)
return "Message Processed"

def verify_fb_token(token_sent):
'''Сверяет токен, отправленный фейсбуком, с имеющимся у вас.
При соответствии позволяет осуществить запрос, в обратном случае выдает ошибку.'''
if token_sent == VERIFY_TOKEN:
return request.args['hub.challenge']
else:
return 'Invalid verification token'

def send_message(recipient_id, response):
'''Отправляет пользователю текстовое сообщение в соответствии с параметром response.'''
bot.send_text_message(recipient_id, response)
return 'Success'

def get_message():
'''Отправляет случайные сообщения пользователю.'''
sample_responses = ["Потрясающе!", "Я вами горжусь!", "Продолжайте в том же духе!", "Лучшее, что я когда-либо видел!"]
return random.choice(sample_responses)

if __name__ == '__main__':
app.run()
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 3
samodum
@samodum
Какой вопрос - такой и ответ
Нужно немного дописать код
Ответ написан
HemulGM
@HemulGM
Delphi Developer, сис. админ
Изучить питон, изучить то, как работает обертка под апи фейсбука. Далее вопросы отпадут сами-собой.
Ответ написан
@iris_duty_2020
Смотрите документацию. Если там есть метод поставки лайка - изучайте его подробнее, и подключайте к коду.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы