web-dev-qa-db-ja.com

電信ボット - グループチャットIDを取得する方法?

telegram_bot を使用していて、groupChat idを使ってグループチャットに通知を送信しようとしていますが、どの方法を使用する必要があるのか​​わかりません。

チャットIDを取得するには、ボットがチャットに参加したときにmessage.chat.idを使用しますが、グループチャットIDを取得するために使用する必要があります。

98

グループチャットIDを取得するには、次のようにします。

  1. Telegram BOTをグループに追加します。

  2. あなたのBOTのためのアップデートのリストを入手してください:

    https://api.telegram.org/bot<YourBOTToken>/getUpdates
    

    例:

    https://api.telegram.org/bot123456789:jbd78sadvbdy63d37gda37bd8/getUpdates
    
  3. 「chat」オブジェクトを探します。

{"update_id":8393、 "メッセージ":{"message_id":3、 "from":{"id":7474、 "first_name": "AAA"}、 "chat":{"id":、 "title ":" "}、"日付 ":25497、" new_chat_participant ":{" id ":71、" first_name ":" NAME "、"ユーザー名 ":" YOUR_BOT_NAME "}}}

これは、BOTをグループに追加したときの応答のサンプルです。

  1. メッセージを送信するには、 "chat"オブジェクトの "id"を使用してください。
129
Maverick_Java

これは数時間苦労した後私のために働いたシーケンスです:

ボット名が my_bot であるとします。

1 - ボットをグループに追加します。
グループに移動し、グループ名をクリックし、メンバーの追加をクリックします。検索ボックスで次のようにボットを検索します。@ my_bot、ボットを選択して追加をクリックします。

2-ボットにダミーメッセージを送る。
この例を使用できます:/my_id @my_bot
(私はいくつかのメッセージを試しましたが、すべてのメッセージがうまくいくわけではありません。上の例はうまくいきます。メッセージは/で始まっているはずです)

3-次のURLにアクセスしてください。 https://api.telegram.org/botXXX:YYYY/getUpdates
XXX:YYYYをあなたのボットトークンに置き換えてください

4- "chat"を探す:{"id": - zzzzzzzzzz、
- zzzzzzzzzzはあなたのチャットIDです(マイナス記号付き)。

5- テスト: グループにメッセージを丸めて送信することをテストできます。

curl -X POST "https://api.telegram.org/botXXX:YYYY/sendMessage" -d "chat_id=-zzzzzzzzzz&text=my sample text"

手順2を見逃した場合、探しているグループの更新はありません。また、複数のグループがある場合は、応答でグループ名を探すことができます( "title": " group_name ")。

お役に立てれば。

103
apadana

2018年半ばの時点では、単に:

  • あなたのグループに @RawDataBot を招待してください。

参加すると、あなたの チャットID message.chat.id にあるJSONファイルを出力します。

"message": {
    "chat": {
        "id": -210987654,
        "title": ...,
        "type": "group",
        ...
    }
    ...
}

後であなたのグループから@RawDataBotをキックするようにしてください。

55
eivamu

2018年半ば以降:
1 :)あなたのグループに @getidsbo または@RawDataBotを招待して、送信されたチャットIDフィールドにあなたのグループIDを取得してください。

Message
 ├ message_id: 338
 ├ from
 ┊  ├ id: *****
 ┊  ├ is_bot: false
 ┊  ├ first_name: 사이드
 ┊  ├ username: ******
 ┊  └ language_code: en
 ├ chat
 ┊  ├ id: -1001118554477    // This is Your Group id
 ┊  ├ title: Test Group
 ┊  └ type: supergroup
 ├ date: 1544948900
 └ text: A

2 :) Plus Messenger のような非公式のメッセンジャーを使用し、グループ/チャンネル情報のあなたのグループIDを見てください。

2018年半ば以前: (使用しないでください)
1:後藤( https://web.telegram.org
2:Gorupに移動してGorupのリンクを見つけます( https://web.telegram.org/#/im?p=g154513121
3:gの後にその数をコピーし、その前に( - )を付けます-154513121
4:Gorupにあなたのメッセージを送るbot.sendMessage(-154513121, "Hi")
今テストしてチャームのように働く

18

このようにしてチャットIDを取得できます。

ボットとのプライベートチャットでは、ランダムなメッセージを送信してください。後でこのメッセージを検索します。

Bot_fatherからAPIトークンを取得します。XXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY

次に、ブラウザでそのURLをリクエストします。

https://api.telegram.org/botXXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY/getUpdates

リクエストはjsonレスポンスを返し、json textであなたのrandom messageを検索し、そのオブジェクトのチャットIDを取得します。

8
Yigit Yuksel

グループIDも同じ方法で取得できます。これはメッセージ本文にmessage.chat.idとして表示され、通常は負の数です。通常のチャットは正の数です。

グループIDとチャットIDは受信したメッセージからのみ取得できます。アクティブなグループなどを取得するためのコールはありません。メッセージを受信して​​キャッシュなどに保存するときは、グループIDを覚えておく必要があります。

7
Chris Brand

Pythonとtelethonを使うと、チャットIDを取得するのはとても簡単です。このソリューションは、テレグラムAPIを扱う人に最適です。

あなたがテレソンを持っていない場合は、これを実行します。

pip install telethon

あなたが電報で登録されたアプリを持っていないならば、それを登録してください: enter image description here リンクはこれです: https://my.telegram.org/ /

その後、次のコードを実行します。

from telethon import InteractiveTelegramClient
from telethon.utils.tl_utils import get_display_name

client = InteractiveTelegramClient('session_id', 'YOUR_PHONE_NUMBER', api_id=1234YOURAPI_ID, api_hash='YOUR_API_HASH')

dialog_count = 10
dialogs, entities = client.get_dialogs(dialog_count)
for i, entity in enumerate(entities):
                    i += 1  # 1-based index
                    print('{}. {}. id: {}'.format(i, get_display_name(entity), entity.id))

グループがリストの一番上に表示されるように、グループにメッセージを送信することをお勧めします。

5
apadana