web-dev-qa-db-ja.com

TelegramボットAPIにクエリを送信する方法

電報ボットを作成してボットトークンを取得した後、ボットAPIにリクエストを送信します。

このリンク は、次のようなHTTPリクエストを送信する必要があることを示しています:https://api.telegram.org/bot<token>/METHOD_NAME。入力パラメーターを持たない最も簡単なメソッド「getme」の例を示します。

メッセージを送りたいと想像してください。 chat_IDとtextの2つの必須入力パラメーターを持つsendMessageメソッドを使用する必要があります。

これで私の質問が始まります:

  1. このsendMessageメソッドを上記のリクエスト形式でそのパラメータとともにどのように記述できますか? sendMessage(param1,param2)を試しましたが、method not foundメッセージを受け取りました。

  2. chat_idとは何ですか?連絡先にメッセージを送信したい場合、どのようにしてchat_idを知ることができますか?

私はインターネットでたくさん検索しましたが、GitHubには特にこの目的のためのプロジェクトがたくさんありますが、正直なところ、それらのどれも意味がありません。神のために誰かが私を助けてください。私は道を失っています。

よろしく。

13
Ali Crash

POSTリクエストを送信するだけです:

https://api.telegram.org/bot{token}/{method}

例えば:

https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendMessage

リクエストの本文で、パラメーターをURLエンコードします。

chat_id=12345&text=hello%20friend

たとえば、Pythonでrequestsモジュールを使用:

import requests

response = requests.post(
    url='https://api.telegram.org/bot{0}/{1}'.format(token, method),
    data={'chat_id': 12345, 'text': 'hello friend'}
).json()

ユーザーがボットとチャットすると、 Messageオブジェクト を取得します。これには、チャットID(およびチャットIDの代わりに使用できるユーザーID)があります。ユーザーIDを既に知っている場合を除き、ユーザーとチャットを開始する方法はないため、ユーザーがあなたと会話するのを待つ必要があります。 ディープリンク を使用して、ユーザーが[スタート]ボタンを押したときに事前に作成されたメッセージを送信するリンクをクリックすることで、これを簡素化できます。

29
Blender

これを試して

https://api.telegram.org/bot{token}/sendMessage?chat_id=<chat_id>&text=<Enter your text here>

https://api.telegram.org/bot449123456:AAHSAnSGDm8PW2Z-1ZiwdVDmgv7sM3NMTxg/sendMessage?chat_id=311911234&text=Hi+Everyone