Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 未定义全局名称_Python_Bots_Telepot - Fatal编程技术网

Python 未定义全局名称

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

当尝试发送消息时,它告诉我聊天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 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上的
中使用该值,因为您没有更改该值,尽管这不会造成伤害。

我在这两个查询中都遇到了与该代码相同的错误