I am trying to create a Telegram bot that interacts in a group when a new user is added. So far, I am only able to send welcoming messages, but I cannot figure out how to send polls or other stuff. How can I do this?
My code:
import requests
import datetime
import time
import json
#Telegram imports
from telegram.ext import Updater # 更新者
from telegram.ext import CommandHandler, CallbackQueryHandler # 註冊處理 一般用 回答用
from telegram.ext import MessageHandler, Filters # Filters過濾訊息
from telegram import InlineKeyboardMarkup, InlineKeyboardButton # 互動式按鈕
import telegram
# 設定 token / Setting up token
token = '[[censored]]'
userId = '[[censored]]'
########### Welcome Function #########
def welcome_msg (item):
chat_id=item["message"]["chat"]["id"]
user_id=item["message"]["new_chat_member"]["id"]
user_name=item["message"]["new_chat_member"].get("username",user_id)
# Default Message:
pollParam={
"chat_id": chat_id,
"question": "Black or White?",
"options": json.dumps(["Black","White"])
}
# 初始化bot / Bot initialization
updater = Updater(token=token, use_context=False)
print("Bot initilization done. The bot is now working in the group chat.")
# Sending first message.
welcome_msg=pollParam.format(user_id,user_name)
to_url='https://api.telegram.org/bot{}/sendMessage?chat_id={}&text={}&parse_mode=HTML'.format(token,chat_id,welcome_msg)
resp=requests.get(to_url)
######################################
endTime=datetime.datetime.now() + datetime.timedelta(minutes=3)
old_id=[[censored]]
print("Users:")
while endTime>datetime.datetime.now():
time.sleep(1)
base_url="https://api.telegram.org/bot{}/getUpdates".format(token)
resp=requests.get(base_url)
data=resp.json()
# print(data)
for item in data ["result"]:
new_id=item["update_id"]
if old_id < new_id:
old_id=int(item["update_id"])
try:
if "new_chat_member" in item["message"]:
welcome_msg(item)
except:
pass