Python 未定义全局名称
当尝试发送消息时,它告诉我聊天id未定义。我能够回答CallbackQuery,因为它需要查询ID而不是聊天。 如果我尝试在DEF on callback查询区域中输入“chat_id”,则会抛出更多错误 我到底需要在代码中的什么地方定义它Python 未定义全局名称,python,bots,telepot,Python,Bots,Telepot,当尝试发送消息时,它告诉我聊天id未定义。我能够回答CallbackQuery,因为它需要查询ID而不是聊天。 如果我尝试在DEF on callback查询区域中输入“chat_id”,则会抛出更多错误 我到底需要在代码中的什么地方定义它 import sys import time import os import telepot from telepot.loop import MessageLoop from telepot.namedtuple import InlineKeyboar
import sys
import time
import os
import telepot
from telepot.loop import MessageLoop
from telepot.namedtuple import InlineKeyboardMarkup, InlineKeyboardButton
def on_chat_message(msg):
content_type, chat_type, chat_id = telepot.glance(msg)
#creating buttons
if content_type == 'text':
if msg['text'] == '/start':
bot.sendMessage(chat_id, 'Welcome to @UK_Cali Teleshop\n Created by JonSnow 2021',reply_markup = InlineKeyboardMarkup(inline_keyboard=[
[InlineKeyboardButton(text="Feedback",callback_data='a'), InlineKeyboardButton(text="You",callback_data='b'),InlineKeyboardButton(text="PGP",callback_data='c'), InlineKeyboardButton(text="Cunt",callback_data='d')],
[InlineKeyboardButton(text="Products",callback_data='e')]
]
))
def on_callback_query(msg):
query_id, from_id, query_data = telepot.glance(msg, flavor='callback_query')
print('Callback Query:', query_id, from_id, query_data)
#find callback data
if query_data == 'a':
#bot.sendMessage(chat_id, 'dsuhsdd')
#answerCallbackQuery puts the message at top
bot.answerCallbackQuery(query_id, 'products')
bot = telepot.Bot('1646167995:AAGsOwfjcryYYkoah69QJ6XGA7koUywmuRk')
MessageLoop(bot, {'chat': on_chat_message,
'callback_query': on_callback_query}).run_as_thread()
print('Listening ...')
while 1:
time.sleep(10)
chat\u id
变量是chat\u消息上的的本地变量<查询中的代码>没有访问权限。最具python风格的方法是将这些文件放入一个类中,并将聊天id存储在一个成员变量中,但您可以通过添加
global chat_id
作为聊天信息的第一行。您不需要在_callback _query上的中使用该值,因为您没有更改该值,尽管这不会造成伤害。我在这两个查询中都遇到了与该代码相同的错误