telegram_bot を使用していて、groupChat idを使ってグループチャットに通知を送信しようとしていますが、どの方法を使用する必要があるのかわかりません。
チャットIDを取得するには、ボットがチャットに参加したときにmessage.chat.idを使用しますが、グループチャットIDを取得するために使用する必要があります。
グループチャットIDを取得するには、次のようにします。
Telegram BOTをグループに追加します。
あなたのBOTのためのアップデートのリストを入手してください:
https://api.telegram.org/bot<YourBOTToken>/getUpdates
例:
https://api.telegram.org/bot123456789:jbd78sadvbdy63d37gda37bd8/getUpdates
「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をグループに追加したときの応答のサンプルです。
これは数時間苦労した後私のために働いたシーケンスです:
ボット名が 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 ")。
お役に立てれば。
2018年半ばの時点では、単に:
参加すると、あなたの チャットID が message.chat.id にあるJSONファイルを出力します。
"message": {
"chat": {
"id": -210987654,
"title": ...,
"type": "group",
...
}
...
}
後であなたのグループから@RawDataBotをキックするようにしてください。
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")
今テストしてチャームのように働く
このようにしてチャットIDを取得できます。
ボットとのプライベートチャットでは、ランダムなメッセージを送信してください。後でこのメッセージを検索します。
Bot_fatherからAPIトークンを取得します。XXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY
次に、ブラウザでそのURLをリクエストします。
https://api.telegram.org/botXXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY/getUpdates
リクエストはjsonレスポンスを返し、json textであなたのrandom message
を検索し、そのオブジェクトのチャットIDを取得します。
グループIDも同じ方法で取得できます。これはメッセージ本文にmessage.chat.id
として表示され、通常は負の数です。通常のチャットは正の数です。
グループIDとチャットIDは受信したメッセージからのみ取得できます。アクティブなグループなどを取得するためのコールはありません。メッセージを受信してキャッシュなどに保存するときは、グループIDを覚えておく必要があります。
Pythonとtelethonを使うと、チャットIDを取得するのはとても簡単です。このソリューションは、テレグラムAPIを扱う人に最適です。
あなたがテレソンを持っていない場合は、これを実行します。
pip install telethon
あなたが電報で登録されたアプリを持っていないならば、それを登録してください: リンクはこれです: 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))
グループがリストの一番上に表示されるように、グループにメッセージを送信することをお勧めします。