19

テレグラム ボットを作成してボット トークンを取得したら、ボット API にリクエストを送信したいと考えています。

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

メッセージを送信したいとします。sendMessage2 つの必須入力パラメータ (chat_ID と text) を持つメソッドを使用する必要があります。

今、私の質問が始まります:

  1. この sendMessage メソッドを上記のリクエスト形式でパラメータとともに記述するにはどうすればよいですか? sendMessage(param1,param2)メソッドが見つからないというメッセージを受け取りました。

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

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

よろしく。

4

2 に答える 2

41

POST リクエストを次の宛先に送信するだけです。

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

例えば:

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

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

chat_id=12345&text=hello%20friend

たとえば、requestsモジュールを使用する Python では次のようになります。

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

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

編集: chat_id を見つけるのに苦労している人には、次の方法があります。

1.-ボットの作成: Telegram の検索で@BotFatherを探します。[スタート] をクリックし、/newbot と書き込み、名前とユーザー名を付けます。HTTP API にアクセスするには、トークンを取得する必要があります。このトークンを保存します。

2.-ユーザー名を使用して Telegram でボットを見つけます。'test' のように何かを書きます。これは後で役に立ちます。

3.- chat_id を出力します。この関数を実行する前に、Telegram で少なくとも 1 つのメッセージをボットに書き込んでいることを確認してください (ステップ 2)。

Javascript コード:

var token = "123456:kioASDdjicOljd_ijsdf"; // Fill this in with your token
var telegramUrl = "https://api.telegram.org/bot" + token;

function getChat_id(){
    var res = UrlFetchApp.fetch(telegramUrl+"/getUpdates").getContentText();
    var res = JSON.parse(res);
    Logger.log(res.result[0].message.chat.id.toString());
}
于 2015-07-03T04:06:55.690 に答える