3

私はWeb技術に精通していないので、電報ボットに単純なことをさせる方法があるかどうかを知りたいです-setWebhookを使用することです(誰かが送信するたびに同じメッセージを何度も繰り返すなど)メッセージ)サーバーをセットアップせずに

JSONオブジェクトを解析してchat_idを取得してメッセージを送信できるようにする必要があるため、これを回避する方法はないと思います...しかし、ここの誰かが方法を知っていることを願っています.

例えば

https://api.telegram.org/bot<token>/setWebHook?url=https://api.telegram.org/bot<token>/sendMessage?text=Hello%26chat_id=<somehow get the chat_id>

ハードコーディングされたチャットIDでテストしましたが、動作します...しかし、もちろん、メッセージを受信した場所に関係なく、常に同じチャットにのみメッセージを送信します.

4

2 に答える 2

7

これは非常に単純な Python ボットの例です。これはサーバーを必要とせずに PC で実行できます。

import requests
import json
from time import sleep

# This will mark the last update we've checked
last_update = 0
# Here, insert the token BotFather gave you for your bot.
token = 'YOUR_TOKEN_HERE'
# This is the url for communicating with your bot
url = 'https://api.telegram.org/bot%s/' % token

# We want to keep checking for updates. So this must be a never ending loop
while True:
    # My chat is up and running, I need to maintain it! Get me all chat updates
    get_updates = json.loads(requests.get(url + 'getUpdates').content)
    # Ok, I've got 'em. Let's iterate through each one
    for update in get_updates['result']:
        # First make sure I haven't read this update yet
        if last_update < update['update_id']:
            last_update = update['update_id']
            # I've got a new update. Let's see what it is.
            if 'message' in update:
                # It's a message! Let's send it back :D
                requests.get(url + 'sendMessage', params=dict(chat_id=update['message']['chat']['id'], text=update['message']['text']))
    # Let's wait a few seconds for new updates
    sleep(3)

ソース

私が取り組んでいるボット

于 2015-06-29T18:02:57.157 に答える