我一直在使用telegram_bot,并试图获得groupChat id发送通知到组聊天,但不知道我必须使用哪些方法。
为了获得聊天id,当机器人参与聊天时,我使用message.chat.id,但我必须使用它来获得组聊天id,无法找到/
我一直在使用telegram_bot,并试图获得groupChat id发送通知到组聊天,但不知道我必须使用哪些方法。
为了获得聊天id,当机器人参与聊天时,我使用message.chat.id,但我必须使用它来获得组聊天id,无法找到/
当前回答
如果您正在实现您的bot,则保留存储的组名-> id表,并使用命令询问它。然后还可以按名称发送。
其他回答
要获取群聊id,请执行以下步骤:
将Telegram BOT添加到群组中。 获取BOT的更新列表:
https://api.telegram.org/bot<YourBOTToken>/getUpdates
Ex:
https://api.telegram.org/bot123456789:jbd78sadvbdy63d37gda37bd8/getUpdates
查找"chat"对象:
{“update_id”:8393年,“消息”:{“message_id”:3,"从":{" id ": 7474年,“first_name”:“AAA”},“聊天”:{" id ": < group_ID >,“标题”:"},“日期”:25497年,“new_chat_participant”:{" id ": 71年,“first_name”:“名字”,“用户名”:“YOUR_BOT_NAME”}}}
这是将BOT添加到组中时的响应示例。
使用"chat"对象的"id"发送消息。 (如果你用bot创建了一个新的组,你只得到{"ok":true,"result":[]},删除并重新添加bot到组中) 私有图表只适用于image argoprojlabs/argocd-notifications:v1.1.0或更高版本。
function adminCheck( chat_id, name ) {
var bAdminCheck = false;
var contents = JSON.parse( getAdmin( chat_id ) );
var i = 0;
while( !bAdminCheck && (i < contents.result.length ) ) {
if( name == (contents.result[i].user.first_name + " " + contents.result[i].user.last_name) ) {
bAdminCheck = true;
}
i++;
}
return bAdminCheck;
}
你可以通过这种方式获取聊天ID。
在与机器人的私人聊天中,随机发送一条消息。稍后您将搜索此消息。
从bot_father: XXXXXXXXX: yyyyyyyyyyyyyyyyyyyyy_yy获取api令牌
然后,在浏览器上使用该url发出请求:
https://api.telegram.org/botXXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY/getUpdates
请求返回一个json响应,在json文本中搜索你的随机消息,并在该对象中获得聊天id。
2018年代中期之后: 1)邀请@getidsbot或@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: Goto (https://web.telegram.org) 2:去你的Gorup,找到你的Gorup链接(https://web.telegram.org/#/im?p=g154513121) 3:复制g后面的数字,在前面加一个(-)-154513121 4:发送你的信息给Gorup 机器人。“嗨”sendMessage (-154513121) 我现在就测试了,效果很好
我不明白为什么最明显(可能也是最简单)的答案不在这里。
当你在写一个bot时,你可以用这三行简单的代码获取id:
bot.on('message', (msg) => {
console.log(msg)
})
然后从控制台检查groupId:D
当你可能试图查看groupId,以便能够用你的bot向一个组发送消息时,正确答案可能是这样的:
你不再使用groupId了。您使用组名(带有https://t.me/careless_whisper的组名)加上@前缀。记住,你的小组必须是公开的。来源:Telegram API
因此,如果你的组名是careless_whisper,收件人将是@careless_whisper