Telegram贴纸发送脚本报错求助:类型错误与PEP 8规范问题
问题解决方案
1. 核心类型错误修复
第一个错误Expected type 'int', got 'str' instead :15是因为API_ID需要传入整数而非字符串,Telethon的TelegramClient初始化时,API_ID必须是整数类型,API_HASH保留字符串格式即可。修改代码开头的API配置:
API_ID = 123456 # 替换成你实际的API_ID(去掉引号,用整数) API_HASH = '你的实际API_HASH' # 保留字符串格式
2. PEP 8格式规范修复
(1)空行问题
- 在
messages_sent = 0后新增一行空行,保证def main():前有2个空行 - 在
main()函数结束后新增一行空行,保证if __name__ == "__main__":前有2个空行
(2)行过长问题
把过长的列表拆分成多行,提升代码可读性:
- 拆分聊天用户名列表:
chat_usernames = [ '@forexjobinkiev', '@spb_work_choogl', '@temshchik_chat', '@work_online_today', '@freelancerchat1', '@chat_sportbetwiner', '@SravkiS', '@dropshiping_tovarka_ua', '@Kiev_Work_Job682', '@robota_com5' ]
- 拆分贴纸ID列表:
sticker_ids = [ 'CAACAgEAAxkBAAK2RmTUSWd8kMnKSh4vNz_YpKaRGL2tAAIuAwAC4WihRo38v4W03s7TMAQ', 'CAACAgEAAxkBAAK2SGTUSYInvjbUPyaP3mpG22JsVhjiAAIYBAACwHKgRlJDWLOjrJKVMAQ' ]
3. 逻辑错误修复(核心功能问题)
原代码的循环逻辑会导致未发够35个贴纸就直接进入24小时等待,需要调整为:发满35个后再等待24小时,循环重置计数后重新发送。修改后的完整代码:
from telethon.sync import TelegramClient import time import datetime API_ID = 123456 # 替换为你的实际API_ID(整数) API_HASH = '你的实际API_HASH' # 替换为你的实际API_HASH messages_sent = 0 def main(): global messages_sent chat_usernames = [ '@forexjobinkiev', '@spb_work_choogl', '@temshchik_chat', '@work_online_today', '@freelancerchat1', '@chat_sportbetwiner', '@SravkiS', '@dropshiping_tovarka_ua', '@Kiev_Work_Job682', '@robota_com5' ] sticker_ids = [ 'CAACAgEAAxkBAAK2RmTUSWd8kMnKSh4vNz_YpKaRGL2tAAIuAwAC4WihRo38v4W03s7TMAQ', 'CAACAgEAAxkBAAK2SGTUSYInvjbUPyaP3mpG22JsVhjiAAIYBAACwHKgRlJDWLOjrJKVMAQ' ] with TelegramClient('anon', API_ID, API_HASH) as client: while True: # 重置发送计数,开始新一轮发送 messages_sent = 0 # 循环发送直到达到35个 while messages_sent < 35: for chat_username in chat_usernames: if messages_sent >= 35: break chat_entity = client.get_entity(chat_username) for sticker_id in sticker_ids: if messages_sent >= 35: break client.send_sticker(chat_entity, sticker=sticker_id) messages_sent += 1 time.sleep(20) # 发送完成后,等待24小时 print(f"已发送{messages_sent}个贴纸,等待24小时后继续...") time.sleep(24 * 60 * 60) if __name__ == "__main__": main()
4. 依赖库检查
确保已安装Telethon库,若未安装执行以下命令:
pip install telethon
若安装失败,可尝试指定稳定版本:
pip install telethon==1.33.1
内容的提问来源于stack exchange,提问作者Foxy
相关产品推荐
相关产品推荐

