如何解决如何使 Web 应用程序使用 django 收听电报频道
我想提供网络应用程序来将在电报频道中发布的消息传输到另一个组。
我参考https://python.plainenglish.io/telegram-channel-listener-with-python-8176ebe3c89b实现如下。这是我在django应用程序的view.py中写的代码。
def transfer(request):
api_id = '####'
api_hash = '####'
user_input_channel = 'https//####'
TOKEN = '####'
to_group_id = '####'
try:
client = TelegramClient('anon',api_id,api_hash)
except:
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
client = TelegramClient('anon',api_hash,loop=loop)
@client.on(events.NewMessage(chats=user_input_channel))
async def newMessageListener(event,loop=None):
if loop is None:
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
#Get message
newMessage = event.message.message
if len(newMessage) > 0:
print(newMessage)
send_text(newMessage,to_group_id,TOKEN)
else:
print('Empty message')
#client.start(bot_token = TOKEN)
with client:
client.run_until_disconnected()
但它不起作用。错误信息如下。
Internal Server Error: /start_transfer/
Traceback (most recent call last):
File "/.pyenv/versions/anaconda3-5.3.1/envs/telegram_bot/lib/python3.9/site-packages/django/core/handlers/exception.py",line 47,in inner
response = get_response(request)
File "/.pyenv/versions/anaconda3-5.3.1/envs/telegram_bot/lib/python3.9/site-packages/django/core/handlers/base.py",line 179,in _get_response
response = wrapped_callback(request,*callback_args,**callback_kwargs)
File "/Documents/telegram/telegramsite/app/views.py",line 211,in transfer
with client:
File "/.pyenv/versions/anaconda3-5.3.1/envs/telegram_bot/lib/python3.9/site-packages/telethon/helpers.py",line 184,in _sync_enter
return loop.run_until_complete(self.__aenter__())
File "/.pyenv/versions/anaconda3-5.3.1/envs/telegram_bot/lib/python3.9/asyncio/base_events.py",line 642,in run_until_complete
return future.result()
File "/.pyenv/versions/anaconda3-5.3.1/envs/telegram_bot/lib/python3.9/site-packages/telethon/client/auth.py",line 713,in __aenter__
return await self.start()
File "/.pyenv/versions/anaconda3-5.3.1/envs/telegram_bot/lib/python3.9/site-packages/telethon/client/auth.py",line 140,in _start
await self.connect()
File "/.pyenv/versions/anaconda3-5.3.1/envs/telegram_bot/lib/python3.9/site-packages/telethon/client/telegrambaseclient.py",line 524,in connect
self.session.auth_key = self._sender.auth_key
File "/.pyenv/versions/anaconda3-5.3.1/envs/telegram_bot/lib/python3.9/site-packages/telethon/sessions/sqlite.py",line 180,in auth_key
self._update_session_table()
File "/.pyenv/versions/anaconda3-5.3.1/envs/telegram_bot/lib/python3.9/site-packages/telethon/sessions/sqlite.py",line 194,in _update_session_table
c.execute('delete from sessions')
sqlite3.OperationalError: database is locked
我不熟悉创建网络应用,所以我需要你的帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。