首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在balebot中使用time.sleep()发送一组消息

无法在balebot中使用time.sleep()发送一组消息
EN

Stack Overflow用户
提问于 2018-05-23 13:34:29
回答 1查看 38关注 0票数 1

我需要用balebot python向一组bale用户发送一条短信。我想直接发送他们,不想等他们和我的机器人开始对话。我有他们的user_id和access_hash。我尝试过这段代码,但是我遇到了一个'HIT_LIMIT‘错误。

BotErrorResponse { _id:'1001',_body:{代码: 403,标签:‘HIT_极限’,数据:{},retryIn: null },代码: 403,标签:‘HIT_data’,数据:{},retryIn: null }

我使用了一个for循环,用time.sleep()再次发送它们,但是当我使用这个sendMessage函数时,它不能工作!

代码语言:javascript
复制
def success(response, user_data):
print("success : ", response)
print(user_data)


def failure(response, user_data):
print("failure : ", response)
print(user_data)


def send_message(bot, update):
for peer in save_peers:
    bot.send_message(TextMessage("Text"), Peer(peer_type=PeerType.user, peer_id=peer["id"],
    access_hash=peer["accessHash"]),
    success_callback=success, failure_callback=failure)
    time.sleep(2)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-23 14:15:28

这是因为异步和time.sleep()与together.If不匹配,如果是您,我将使用asyncio.get_event_loop()而不是for循环和time.sleep()。下面是一个示例代码:

代码语言:javascript
复制
save_peers = [{"$type": "User", "id": 128521332, "accessHash": "9256310829016723727"},
              {"$type": "User", "id": 928571821, "accessHash": "4540300829906797423"}
              ]
limit_message = 50000
bot_send_delay = 2
my_send_loop = asyncio.get_event_loop()
my_send_loop2 = asyncio.get_event_loop()


def send_message(bot, how_many, message_number, loop):
    print("sending for ", message_number, " st time")

    my_send_loop2.call_soon(send_message2, bot, len(save_peers), 0, my_send_loop2)

    if message_number < how_many:
        loop.call_later(bot_send_delay, send_message, bot, how_many, message_number + 1, loop)
    else:
        print("index finished")

def send_message2(bot, top, down, loop):
    print("sending for ", down, " st time")
    if down < top:
        bot.send_message(TextMessage("TEXT"), Peer(peer_type=PeerType.user, peer_id=save_peers[down]["id"],
                                                   access_hash=save_peers[down]["accessHash"]),
                         success_callback=success, failure_callback=failure)
        loop.call_later(bot_send_delay, send_message2, bot, top, down + 1, loop)


my_send_loop.call_soon(send_message, bot, limit_message, 0, my_send_loop)

updater.run()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50489844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档