จะรับ chat_id ของช่องโทรเลขส่วนตัวได้อย่างไร?


93

ฉันใช้ curl เพื่ออัปเดตช่องสาธารณะของฉัน ไวยากรณ์ประเภทนี้:

curl -X POST "https://api.telegram.org/bot144377327:AAGqdElkZ-77zsPRoAXXXXXXXXXX/sendMessage" -d "chat_id=@MyChannel&text=my sample text"

แต่chat_idช่องส่วนตัวคืออะไร? ไม่ใช่คนที่คุณมีในคำเชิญส่วนตัว

เนื่องจากตอนนี้เราสามารถส่งชื่อผู้ใช้ของช่อง (ในรูปแบบ @channelusername) แทน chat_id ในทุกวิธีการ (และแทนที่จะเป็น from_chat_id ใน forwardMessage) แต่ @channelusername ของช่องส่วนตัวที่ฉันดูแลคืออะไร?


ทำไมคุณต้องมี chat_id ของช่อง วิธีการส่งทั้งหมดไปยังช่องใช้สตริง "@channel_name"
Stas Parshin

สวัสดี @pengrad ด้วยคำสั่ง curl ฉันขอให้บอทของฉันส่งข้อความถึง MyChannel สำหรับช่องสาธารณะ chat_id จะเท่ากับส่วนสุดท้ายของ URL: ในtelegram.me/MyChannel chat_id คือ "MyChannel" ช่องส่วนตัวมีเฉพาะ URL เชิญเช่นtelegram.me/joinchat/AJhkwTviqL_7HWcGZgottQและ chat_id ไม่ใช่ "AJhkwTviqL_7HWcGZgottQ" ด้วยเหตุนี้ฉันจึงกำลังมองหา chat_id ของช่องส่วนตัว
aborruso

มีวิธีเรียกใช้แท็กซี่ฟรีโดยไม่ต้องโทรเลขหรือไม่?
Shahid Karimi

คำตอบ:


187

ฉันพบวิธีการเขียนในช่องส่วนตัว

  1. คุณควรแปลงเป็นสาธารณะด้วย @channelName
  2. ส่งข้อความถึงช่องนี้ผ่าน Bot API

    https://api.telegram.org/bot111:222/sendMessage?chat_id=@channelName&text=123

  3. ตามคำตอบคุณจะได้รับข้อมูลพร้อม chat_id ของช่องของคุณ

    {"ok": true, "result": {"chat": { "id": -1001005582487, "title": "ทดสอบช่องส่วนตัว", "type": "channel"}, "date": 1448245538, " message_id ": 7," text ":" 123ds "}}

  4. ตอนนี้คุณสามารถแปลงช่องกลับเป็นส่วนตัว (โดยการลบลิงก์ของช่อง) และส่งข้อความโดยตรงไปที่ chat_id "-1001005582487"

    https://api.telegram.org/bot111:222/sendMessage?chat_id=-1001005582487&text=123


1
ฉันโหวตคำถามของคุณและขอขอบคุณสำหรับรายละเอียด! ฉันงงในการโหวตคำตอบของคุณที่นี่เพราะเป็นการแฮ็ก :-) BTW คำถามทั่วไปของฉันคืออะไรความต้องการของช่องส่วนตัว? บางทีกลุ่ม (supergroups ล่าสุด) อาจเป็นวิธีที่ดีกว่า? ในเอกสารทางโทรเลขของ facs ไม่ชัดเจนเกี่ยวกับช่องส่วนตัว
Giorgio Robino

1
ฉันลองสิ่งนี้และได้ผลเพียงบางนาทีเท่านั้น ฉันคิดว่าเพราะเมื่อช่องกลายเป็นส่วนตัวแล้วจะมีกรอบเวลาที่ช่องยังเข้าถึงได้แบบสาธารณะหลังจากนั้นหากคุณพยายามตั้งค่าเป็นสาธารณะอีกครั้งคุณจะต้องกำหนดรหัสช่องใหม่
roibeart

1
คุณควรชี้แจงว่าเราจำเป็นต้องส่งโทเค็น api ของเราถัดจากบอทในเครื่องหมายทับแรก ยังไงก็ขอบคุณ! มันเป็นวิธีการแก้ปัญหาที่เรียบร้อย
Franco Maldonado

110

ทำให้ช่องเป็นสาธารณะไม่สามารถทำได้โดยผู้ใช้ที่มีอยู่อย่างน้อย 5 กลุ่ม / ช่องสาธารณะดังนั้น ... ปัญหาไม่ได้รับการแก้ไข ได้คุณสามารถเพิกถอนหนึ่งในนั้นได้ แต่ในตอนนี้เราไม่สามารถเรียกคืนรหัสแชทด้วยวิธีอื่นได้

ถอน

มีใครพบวิธีแก้ปัญหาสำหรับกรณีนั้นหรือไม่?

อัพเดต

ฉันพบวิธีแก้ปัญหาที่บ้า:

  1. เข้าสู่ระบบภายใต้บัญชีของคุณที่ Telegram เวอร์ชันเว็บ: https://web.telegram.org
  2. ค้นหาช่องของคุณ ดู url ของคุณควรเป็นเช่นhttps://web.telegram.org/#/im?p=c 1055587116 _11052224402541910257
  3. หยิบ "1055587116" จากนั้นและเพิ่ม "-100" เป็นคำนำหน้า

ดังนั้น ... รหัสช่องของคุณจะเป็น "-1001055587116" เวทมนตร์เกิดขึ้น :)

พบโซลูชันที่นี่: https://github.com/GabrielRF/telegram-id#web-channel-id


1
แม้แต่ช่องใหม่ของฉันก็เปลี่ยนเป็นส่วนตัว / สาธารณะ / ส่วนตัวเพื่อตั้งค่า@channel_usernameแต่ในขณะที่เป็นช่องส่วนตัว@channel_usernameก็ไม่ได้ผลสำหรับฉัน! ฉันใช้วิธีแก้ปัญหาที่คุณโพสต์แล้วและได้ผล
MohaMad

คุณเป็นคนมีชีวิต!
Juggernaut

1
ฉันไม่คิดว่า-100คำนำหน้านี้จะใช้ได้ตลอดไป แต่หลังจาก 4 ปีก็ยังใช้งานได้!
Ali Tou

1
@AliTou Pavel Durov เพิ่งพบความคิดเห็นนี้และตัดสินใจที่จะไม่ลบ FEATURE ahah :) ดีใจที่ได้ยินว่ามันยังใช้งานได้ :)
Nigrimmist

1
ยังคงใช้งานได้ในขณะนี้ (พฤศจิกายน 2020)
dcangulo

38

วิธีที่ง่ายที่สุดคือเชิญ @get_id_bot ในแชทของคุณจากนั้นพิมพ์:

/my_id @get_id_bot

ภายในแชทของคุณ


3
ขอบคุณคำตอบที่ดีที่สุด!
realmag777

2
จากการทดสอบของฉันควรเพิ่มบอทเป็นผู้ดูแลระบบในช่อง
Morteza Ziyae

ใช่จะต้องถูกเพิ่มในฐานะผู้ดูแลระบบ
Stefan Reich

3
ตอนนี้ยังอยู่ไหม / my_id @ ... ดูเหมือนจะทำอะไรไม่ได้ (นอกจากข้อความนั้นจะปรากฏขึ้น)
wal

1
@wal ฉันได้รับรหัสโดย 2 วิธี/start @get_id_botและ/my_id @get_id_botช่องว่างดูเหมือนสำคัญ เพิ่ม@get_id_botเป็นสมาชิกและให้สิทธิ์โพสต์ในฐานะผู้ดูแลระบบเท่านั้น ลบออกเพื่อความปลอดภัยเมื่อคุณได้รับ ID
rahoolm

25

เปิดช่องส่วนตัวจากนั้น:

  • บนเว็บไคลเอนต์:

  • บนมือถือและเดสก์ท็อป :

    • คัดลอกลิงค์ของข้อความใด ๆของช่อง:
    • ifตัวอย่างเช่นhttps://t.me/c/1192292378/31
    • then 1192292378คือรหัสช่อง (โบนัส: 31คือรหัสข้อความ)
  • บนPlus Messenger สำหรับ Android :

    • เปิดข่าวสารของช่อง:
    • รหัสช่องจะปรากฏด้านบนใต้ชื่อ

WARNINGอย่าลืมเพิ่ม -100 คำนำหน้าเมื่อใช้ Telegram Bot API:

  • if รหัสช่องเป็นตัวอย่างเช่น 1192292378
  • thenคุณควรใช้-1001192292378

2
นี่เป็นวิธีที่ง่ายที่สุดและถูกต้องในการรับรหัสช่องขอบคุณ!
Tonni

คำตอบที่ดีที่สุดขอบคุณ!
Niko

3

คุณสามารถทำได้เช่นกัน:

ขั้นตอนที่ 1) แปลงช่องส่วนตัวของคุณเป็นช่องสาธารณะ

ขั้นตอนที่ 2) ตั้งชื่อช่องสำหรับช่องนี้

ขั้นตอนที่ 3) จากนั้นคุณสามารถเปลี่ยนช่องนี้เป็นส่วนตัว

ขั้นตอนที่ 4) ส่งข้อความของคุณโดยใช้ @ChannelName ที่คุณตั้งไว้ในขั้นตอนที่ 3

หมายเหตุ: สำหรับขั้นตอนที่ 1 คุณสามารถเปลี่ยนช่องสาธารณะของคุณเป็นส่วนตัวได้ในช่วงเวลาสั้น ๆ


2

ไม่จำเป็นต้องแปลงช่องเป็นสาธารณะแล้วทำให้เป็นส่วนตัว

  1. ค้นหารหัสของช่องส่วนตัวของคุณ (มีหลายวิธีในการดำเนินการเช่นดูคำตอบ SO นี้ )

  2. curl -X POST " https://api.telegram.org/botxxxxxx:yyyyyyyyyyyy/sendMessage " -d "chat_id = -100 CHAT_ID & text = ข้อความตัวอย่างของฉัน"

    แทนที่ xxxxxx: yyyyyyyyyyyy ด้วยรหัสบอทของคุณและแทนที่ CHAT_ID ด้วยรหัสแชนเนลที่พบในขั้นตอนที่ 1 ดังนั้นหากรหัสแชนเนลคือ 1234 มันจะเป็น chat_id = -1001234

เสร็จหมดแล้ว!


1

รหัสของช่องส่วนตัวของคุณคือส่วน XXXXXX (ระหว่าง "p = c" และขีดล่าง) หากต้องการใช้งานให้เพิ่ม "-100" ไว้ข้างหน้า ดังนั้นหาก "XXXXXX" คือ "4785444554" รหัสช่องส่วนตัวของคุณ "-1004785444554"


1

ในตอนนี้คุณสามารถเขียนลิงก์เชิญไปที่ bot @username_to_id_bot และคุณจะได้รับ id:

ตัวอย่าง: ป้อนคำอธิบายภาพที่นี่

ยังทำงานร่วมกับแชทสาธารณะช่องและแม้แต่ผู้ใช้


0

ตัวเลือกที่ฉันทำคือใช้ Plus Messenger ยอดนิยมบน Android ลิงค์ play store คือ: https://play.google.com/store/apps/details?id=org.telegram.plus&hl=th

คุณสามารถคลิกที่ช่องและในข้อมูลช่องด้านล่างชื่อกลุ่มคุณจะพบรหัสช่อง

Supergroup และ Channel ID จะมีลักษณะเหมือน 1068773197 บน plus messenger สำหรับการใช้งานบน API คุณสามารถนำหน้า -100 ซึ่งจะทำให้เป็น -1001068773197


0

พบวิธีแก้ปัญหาสำหรับ TelegramBotApi สำหรับ python อาจจะใช้งานได้กับภาษาอื่น

ฉันแค่เพิ่มบอทของฉันลงในช่องส่วนตัวแล้วทำสิ่งนี้:

@your_bot_name hi

ในคอนโซลฉันได้รับคำตอบพร้อมข้อมูลทั้งหมดที่ต้องการ


-1

คำตอบที่ต้องการ:

คุณควรเพิ่มและกำหนดให้ BOT ของคุณเป็นผู้ดูแลช่อง PRIVATEมิฉะนั้นchat not foundจะเกิดข้อผิดพลาด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.