টেলিগ্রাম বট - কীভাবে একটি গ্রুপ চ্যাট আইডি পাবেন?


170

আমি টেলিগ্রাম_বোট ব্যবহার করে যাচ্ছি , এবং গ্রুপ চ্যাটে বিজ্ঞপ্তি প্রেরণের জন্য গ্রুপ চ্যাট আইডি নেওয়ার চেষ্টা করছি, তবে এর জন্য কোন পদ্ধতিগুলি ব্যবহার করতে হবে তা আমার জানা নেই।

চ্যাট আইডি পাওয়ার জন্য আমি বার্তা চ্যাটটিতে অংশ নেওয়ার সময় ম্যাসেজ.ক্যাট.আইডিতে ব্যবহার করি তবে গ্রুপ চ্যাট আইডি পাওয়ার জন্য যা আমাকে ব্যবহার করতে হবে তা খুঁজে পাবে না /


1
আমি এটির জন্য একটি বট পরিচালনা করি। আমি এই ইচ্ছার সাহায্য আশা করি, এই <পরীক্ষা stackoverflow.com/a/37396871/6223024 >
fredy kardian

উত্তর:


226

গ্রুপ চ্যাট আইডি পেতে, নিম্নলিখিত হিসাবে করুন:

  1. দলে টেলিগ্রাম বিওটি যুক্ত করুন।

  2. আপনার বিওটির জন্য আপডেটের তালিকা পান:

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

    উদা:

    https://api.telegram.org/bot123456789:jbd78sadvbdy63d37gda37bd8/getUpdates
    
  3. "চ্যাট" অবজেক্টটির সন্ধান করুন:

{ "Update_id": 8393, "বার্তা": { "message_id": 3, "থেকে": { "ID": 7474, "FIRST_NAME": "AAA যাচাই"}, "চ্যাট": { "ID": "TITLE ":" "}," তারিখ ": 25497," new_chat_participant ": {" ID ": 71," FIRST_NAME ":" নাম "," ব্যবহারকারীর নাম ":" YOUR_BOT_NAME "}}}

আপনি যখন আপনার বিওটি একটি দলে যুক্ত করেন তখন এটি প্রতিক্রিয়াটির একটি নমুনা।

  1. আপনার বার্তা প্রেরণ করতে "চ্যাট" অবজেক্টের "আইডি" ব্যবহার করুন।

1
আপনি একটি উদাহরণ প্রদান করতে পারেন?
রোমান পোদপ্রিয়াটোভ

2
@ WannaBeCoder, আপনি অন্য কোনও সদস্যের মতো একটি গ্রুপে একটি বিওটি যুক্ত করতে পারেন: আপনার গ্রুপের বৈশিষ্ট্যে যান, অ্যাড মেম্বারে ক্লিক করুন, এবং বিওটির নাম অনুসন্ধান করতে অনুসন্ধান আইকনটি ব্যবহার করুন। তবে, মনে রাখবেন যে টেলিগ্রামের গ্রুপগুলিতে সাম্প্রতিক পরিবর্তনগুলি থেকে, আপনাকে নতুন সদস্য যুক্ত করতে অবশ্যই একটি গ্রুপ "অ্যাডমিন" হতে হবে, তারা বিওটি হোক বা না থাকুক।
ম্যাভারিক_জাভা

37
নব নির্মিত দলের জন্য getUpdatesঅনুরোধ আয় {"ok":true,"result":[]}এমনকি যদি আমি মাধ্যমে গ্রুপ এবং উল্লেখ বট বার্তা গুচ্ছ পাঠাতে চেষ্টা @এবং কিছু র্যান্ডম "কমান্ড" /my_id, /start, /help। কোন ধারনা কি করতে? - আপডেট: ঠিক আছে, গ্রুপ থেকে বট অপসারণ, এবং বট ব্যাক যোগ করা এই সমস্যাটিকে ঠিক করেছে (এটি গ্রুপে চ্যাট আইডিও প্রিন্ট করেছে) --- দেখে মনে হচ্ছে গ্রুপ তৈরির সময় বট যোগ করা যায় না।
রুটস্কি

8
এটি প্রত্যাবর্তন করে: {"ঠিক আছে": সত্য, "ফলাফল": []}
টম

3
হাই টম. আপনি ইতিমধ্যে রুটস্কি সমাধানের চেষ্টা করেছেন: "গ্রুপ থেকে বট অপসারণ, এবং বট ব্যাক যোগ করা এই বিষয়টি ঠিক করেছে (এটি গ্রুপে চ্যাট আইডিও প্রিন্ট করেছে) --- দেখে মনে হচ্ছে গ্রুপ তৈরির সময় বট যোগ করা যায় না।" আমি বেশ কয়েকবার একই সমস্যার মুখোমুখি হয়েছি এবং গ্রুপ থেকে বটটি সরিয়ে আবার এটিকে যুক্ত করে সবসময় সমস্যার সমাধান করেছি। এটি আপনাকে সাহায্য করবে না যদি আমাকে জানাতে।
ম্যাভেরিক_জাভা

136

বেশ কয়েক ঘন্টা লড়াই করার পরেও এই ক্রমটি আমার জন্য কাজ করেছে:

ধরুন বটের নামটি আমার_বোট

1- গ্রুপে বট যোগ করুন।
গোষ্ঠীতে যান, গ্রুপের নামের উপর ক্লিক করুন, আপনার বোটের জন্য অনুসন্ধান বাক্সে অনুসন্ধানের সদস্যদের যোগ করুন এ ক্লিক করুন: @ মাই_বোট, আপনার বটটি নির্বাচন করুন এবং যুক্ত ক্লিক করুন।

2- বট একটি চটকদার বার্তা প্রেরণ।
আপনি এই উদাহরণটি ব্যবহার করতে পারেন: /my_id @my_bot
(আমি কয়েকটি বার্তা চেষ্টা করেছি, সমস্ত বার্তাগুলি কাজ করে না above উপরের উদাহরণটি ভাল কাজ করে Maybe সম্ভবত বার্তাটি শুরু হওয়া উচিত /) দিয়ে

3- নিম্নলিখিত url এ যান: https://api.telegram.org/botXXX:YYYY/getUpdates
XXX প্রতিস্থাপন করুন: YYYY আপনার বট টোকেন দিয়ে

4- "চ্যাট": {"আইডি" দেখুন: - zzzzzzzzzz,
-zzzzzzzzzz আপনার চ্যাট আইডি (নেতিবাচক চিহ্ন সহ)।

5- পরীক্ষা: আপনি একটি কার্ল দিয়ে গোষ্ঠীতে একটি বার্তা প্রেরণ পরীক্ষা করতে পারেন:

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

আপনি যদি পদক্ষেপ 2 মিস করেন তবে আপনি যে গোষ্ঠীটির সন্ধান করছেন তার জন্য কোনও আপডেট নেই। এছাড়াও যদি একাধিক গোষ্ঠী থাকে তবে আপনি প্রতিক্রিয়াতে ("শিরোনাম": " গোষ্ঠী_নাম ") গোষ্ঠীর নাম সন্ধান করতে পারেন ।

আশাকরি এটা সাহায্য করবে.


2
কীভাবে বিওটি কনফিগার করা যায় সে সম্পর্কে দুর্দান্ত ব্রেকআপ।
ভয়_ম্যাট্রিক্স

আমি বটকে একটি বার্তা পাঠিয়েছিলাম তবে এটি তাত্ক্ষণিকভাবে কাজ করে না, কয়েক সেকেন্ড (বা সম্ভবত কয়েক মিনিট) অপেক্ষা করে আবার কার্ল চেষ্টা করে কাজ করে।
লাইভওয়্যারবিটি

4
আমি গ্রুপটিতে আমার বট কাজ করতে পারি না, আমি ব্রাউজারে {"ঠিক আছে": সত্য, "ফলাফল": []। পাই। আশা করি কেউ আমাকে সাহায্য করতে পারে
TheMrkt

1
এটি আমার পক্ষে কাজ করেছে। একটি জিনিস, আপনার যদি ওয়েবহুকগুলি কনফিগার করা থাকে তবে আপনাকে এটি অক্ষম করতে হবে। ধন্যবাদ!
এরিচ গার্সিয়া

3
@TheMrkt মনে হচ্ছে, আপাদানা যেমন বলেছে যে এই /মত দিয়ে শুরু হওয়া বার্তা /test somethingপাঠায় তা খুশি হয় get
e2-e4

100

2020 সালের মার্চ পর্যন্ত, কেবল:

  • আপনার গ্রুপে রাউডাটাবোটকে আমন্ত্রণ জানান ।

যোগদান এটা আউটপুট একটি JSON ফাইল যেখানে আপনার ইচ্ছার ওপর চ্যাট আইডি অবস্থিত করা হবে message.chat.id

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

আপনার গ্রুপ থেকে পরে রাউডাটাবটকে লাথি মারতে ভুলবেন না।


3
@RawDataBot এর আউটপুটটি কোথায় পাওয়া উচিত? আমি আমার গ্রুপে বট যুক্ত করেছি, তবে কিছুই সুখী হবে না। আপডেট: টেলিগ্রামে আপনার একটি ব্যবহারকারী নাম স্থাপন করা দরকার, অন্যথায় কিছুই ঘটে না।
ফ্র্যাঙ্ক মুলেনার

1
এটি অর্জনের সবচেয়ে সহজতম উপায়। ধন্যবাদ!
Suchanoob

1
@ চেরোনা: আমি কেবল এটি পুনরায় যাচাই করেছি। তবে মনে হয় ওয়েব ক্লায়েন্টটি এমন পরিবর্তন করেছে যে বটকে আমন্ত্রণ জানানো তার আগের চেয়ে কিছুটা শক্ত। আপনি এটি কীভাবে করতে পারেন তা এখানে: অনুসন্ধান ক্ষেত্রের RawDataBot অনুসন্ধান করুন। একটি চ্যাট সেশন শুরু করতে যোগাযোগ ক্লিক করুন। "যোগাযোগের তথ্য" খোলার জন্য চ্যাট শিরোনামটি ক্লিক করুন। "গোষ্ঠীতে যোগ করুন" ক্লিক করুন এবং গোষ্ঠীটি চয়ন করুন। এটি তাত্ক্ষণিকভাবে পূর্বের মতো তথ্য আউটপুট করবে। আশা করি এটা তোমার জন্য কাজ করবে।
আইভামু

42

মধ্য 2018 এর পরে:
1 :) @ গেটিডসবো বা @RawDataBotআপনার গ্রুপে আমন্ত্রণ জানান এবং প্রেরিত চ্যাট আইডি ক্ষেত্রে আপনার গ্রুপ আইডি পান।

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 :) প্লাস মেসেঞ্জারের মতো একটি সরকারী মেসেঞ্জার ব্যবহার করুন এবং গ্রুপ / চ্যানেল তথ্যে আপনার গ্রুপ আইডি দেখুন।

মাঝামাঝি 2018 এর আগে: (ব্যবহার করবেন না)
1: গোটো ( https://web.telegram.org )
2: আপনার গোরুপে যান এবং আপনার গরুপের লিঙ্কটি সন্ধান করুন ( https://web.telegram.org/#/im ? পি = g154513121 )
3: ছের পরে সেই নম্বরটি অনুলিপি করুন এবং তার আগে একটি (-) রাখুন -154513121
4: আপনার বার্তাটি bot.sendMessage(-154513121, "Hi")
এখন গুরুপে প্রেরণ করুন এবং মনোযোগের মতো কাজ করুন


1
খুব সহজ. ধন্যবাদ! গ্রাফানা সতর্কতা বিজ্ঞপ্তিতে পরীক্ষিত। এ পর্যন্ত সব ঠিকই.
অ্যাড্রিয়ান নিকোলাইভ

@ সিড্রিক হেইদারিজরেই যদি এটির মতো একটি নম্বর না হয় তবে (ওয়েব.টেলগ্রাম.আর /#/im?p=@ welcomeworld )
মার্কস বাবু ২

2
'@ ওয়েলকামওয়ার্ল্ড' আপনার চ্যানেল ব্যবহারকারীর নাম, আপনি '@getidsbot' এ একটি বার্তা ফরোয়ার্ড করতে পারেন এবং আপনার আইডি পেতে পারেন
সেড্রিক হেইদারিজারে

পাইথন অত্যন্ত বড় SQLite পূর্ণসংখ্যা ... client.send_message (-1240933195_1386556410045688xx08.'Hi ') রূপান্তর int: একই রয়েছে গোমরাহী ছাড়া OverflowError সঙ্গে সম্মুখীন করেনি
বিনোদ

আমি আমার উত্তর আপডেট করেছি, এই পদ্ধতিটি আর কাজ করে না, অস্থায়ীভাবে After mid-2018পদ্ধতিটি ব্যবহার করুন ।
Sedric Heidarizarei

9

আপনি এইভাবে চ্যাট আইডি পেতে পারেন।

আপনার বটের সাথে ব্যক্তিগত চ্যাটে, একটি এলোমেলো বার্তা প্রেরণ করুন। আপনি এই বার্তাটি পরে অনুসন্ধান করবেন।

বটফাদার থেকে আপনার এপিআই-টোকেন পান: XXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY

তারপরে, আপনার ব্রাউজারে সেই url দিয়ে একটি অনুরোধ করুন:

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

অনুরোধটি একটি জসন প্রতিক্রিয়া ফিরিয়ে দেয়, জসন পাঠ্যে আপনার অনুসন্ধান করুন random messageএবং সেই বস্তুটিতে চ্যাট আইডি পান।


8

পাইথন ও টেলিথন ব্যবহার করে চ্যাট আইডি পাওয়া খুব সহজ। টেলিগ্রাম এপিআই দিয়ে যারা কাজ করেন তাদের পক্ষে এই সমাধানটি সেরা।

আপনার কাছে টেলিথন না থাকলে এটি চালান:

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))

আপনি নিজের গোষ্ঠীতে একটি বার্তা প্রেরণ করতে চাইতে পারেন যাতে গোষ্ঠী তালিকার শীর্ষে প্রদর্শিত হয়।


7

আপনি একইভাবে গ্রুপ আইডি পুনরুদ্ধার করতে পারেন। এটি বার্তার মূল অংশে উপস্থিত হয় message.chat.idএবং এটি সাধারণত একটি নেতিবাচক সংখ্যা, যেখানে সাধারণ চ্যাটগুলি ইতিবাচক হয়।

গোষ্ঠী আইডি এবং চ্যাট আইডিগুলি কেবলমাত্র প্রাপ্ত বার্তাগুলি থেকে পুনরুদ্ধার করা যায়, সক্রিয় গোষ্ঠীগুলি পুনরুদ্ধার করার জন্য কোনও কল উপলব্ধ নেই the


অন্য কেউ কি এটি সত্য বলে নিশ্চিত করতে পারে? আমি ডকুমেন্টগুলি পড়ে হ্যাঁ বলার কাছাকাছি। আমি আমার প্রয়োজনীয়তা পূরণের জন্য গ্রুপ লিঙ্ক থেকে চ্যাট_আইডি পেতে সক্ষম হতে চাই।
প্রাইমটাইমট্রান

1

একটি বট তৈরি করুন, বা ইতিমধ্যে নিম্নলিখিত হিসাবে সেট তৈরি করা থাকলে:

বার্তায় অ্যাক্সেস আছে

স্পষ্টতই, টেলিগ্রাম গ্রুপটি কত পুরানো / নতুন নির্বিশেষে:

  1. গ্রুপে একটি বট যোগ করুন
  2. গ্রুপ থেকে বট অপসারণ
  3. আবার দলে যোগ করুন

  4. একটি স্ক্রিপ্ট ফাইল তৈরি করুন এবং getUpdatesপদ্ধতি পদ্ধতি উদাহরণ:

    var vApiTokenTelegram = "1234567890:???>yg5GeL5PuItAOEhvdcPPELAOCCy3jBo"; // @?????Bot API token
    var vUrlTelegram = "https://api.telegram.org/bot" + vApiTokenTelegram;

    function getUpdates() {
        var response = UrlFetchApp.fetch(vUrlTelegram + "/getUpdates");
        console.log(response.getContentText());
    }
  1. ফাংশন নিম্নলিখিত কনসোলে লগ করা হবে:
[20-04-21 00:46:11:130 PDT] {"ok":true,"result":[{"update_id":81329501,
"message":{"message_id":975,"from":{"id":962548471,"is_bot":false,"first_name":"Trajano","last_name":"Roberto","username":"TrajanoRoberto","language_code":"en"},"chat":{"id":-1001202656383,"title":"R\u00e1dioRN - A voz da na\u00e7\u00e3o!","type":"supergroup"},"date":1587454914,"left_chat_participant":{"id":1215098445,"is_bot":true,"first_name":"MediaFlamengoRawBot","username":"MediaFlamengoRawBot"},"left_chat_member":{"id":1215098445,"is_bot":true,"first_name":"MediaFlamengoRawBot","username":"MediaFlamengoRawBot"}}},{"update_id":81329502,
"message":{"message_id":976,"from":{"id":962548471,"is_bot":false,"first_name":"Trajano","last_name":"Roberto","username":"TrajanoRoberto","language_code":"en"},"chat":{"id":-1001202656383,"title":"R\u00e1dioRN - A voz da na\u00e7\u00e3o!","type":"supergroup"},"date":1587454932,"new_chat_participant":{"id":1215098445,"is_bot":true,"first_name":"MediaFlamengoRawBot","username":"MediaFlamengoRawBot"},"new_chat_member":{"id":1215098445,"is_bot":true,"first_name":"MediaFlamengoRawBot","username":"MediaFlamengoRawBot"},"new_chat_members":[{"id":1215098445,"is_bot":true,"first_name":"MediaFlamengoRawBot","username":"MediaFlamengoRawBot"}]}}]}
  1. টেলিগ্রাম গ্রুপ চ্যাট_আইডি উপরের বার্তা থেকে বের করা যেতে পারে "chat":{"id":-1001202656383,"title"

আশা করি এটি সাহায্য করে (এইচটিএইচ)


0

বটটি একটি বট সহ-বিদ্যমান টেলিগ্রাম গ্রুপে নিম্নলিখিত বার্তাটির উত্স পেয়েছে:

প্রয়োজনীয় হিসাবে ডেটা উত্তোলন

function doPost(e) {
    var contents = JSON.parse(e.postData.contents);
    //  GmailApp.sendEmail(Session.getEffectiveUser().getEmail(), "Telegram Bot Update", JSON.stringify(contents, null, 4));
    var chat_id = contents.message.chat.id;
    var text = contents.message.text;
    var name = contents.message.from.first_name + " " +  contents.message.from.last_name;
    var sResponse = telegramBotMachine( chat_id, text, name );
}  

/ * বিষয়বস্তু

{
    "update_id": 20383255,
    "message": {
        "message_id": 147,
        "from": {
            "id": 999999999,
            "is_bot": false,
            "first_name": "Trajano",
            "last_name": "Roberto",
            "username": "TrajanoRoberto",
            "language_code": "en"
        },
        "chat": {
            "id": -666666666,
            "title": "Test Ataque Media Flamengo",
            "type": "group",
            "all_members_are_administrators": true
        },
        "date": 1585450075,
        "text": "Menu"
    }
}

0

এই প্রোগ্রামটিতে এই কাজ করতে সবচেয়ে ভালো উপায় telethon ব্যবহার করছে, কিন্তু প্রদত্ত যে উত্তর দ্বারা apadana মেরামতের জন্য পুরানো হয়, আমি কাজ সমাধান এখানে লিখতে হবে:

import os
import sys
from telethon import TelegramClient
from telethon.utils import get_display_name

import nest_asyncio
nest_asyncio.apply()

session_name = "<session_name>"
api_id = <api_id>
api_hash = "<api_hash>"
dialog_count = 10 # you may change this

if f"{session_name}.session" in os.listdir():
    os.remove(f"{session_name}.session")

client = TelegramClient(session_name, api_id, api_hash)

async def main():
    dialogs = await client.get_dialogs(dialog_count)
    for dialog in dialogs:
        print(get_display_name(dialog.entity), dialog.entity.id)

async with client:
    client.loop.run_until_complete(main())

এই স্নিপেটটি 10আপনার টেলিগ্রামে আপনাকে প্রথম চ্যাট দেবে।

অনুমিতি:

  • আপনি telethonএবং nest_asyncioইনস্টল করা আছে
  • আপনার api_idএবং my.telegram.orgapi_hash থেকে

0
function doPost(e) {
    var contents = JSON.parse(e.postData.contents);
    //  GmailApp.sendEmail(Session.getEffectiveUser().getEmail(), "Telegram Bot Update",     JSON.stringify(contents, null, 4));
    var chat_id = contents.message.chat.id;
    var text = contents.message.text;
    var name = contents.message.from.first_name + " " +  contents.message.from.last_name;
    var sResponse = telegramBotMachine( chat_id, text, name );
}

পোস্টটি যখন কোনও গোষ্ঠী থেকে উত্পন্ন হয়, তখন জেএসওএন অবজেক্টের মাধ্যমে বিভিন্ন টুকরো তথ্য পাওয়া যায় আপনি উপরের উদাহরণের মাধ্যমে চ্যাট_আইডি বিষয়বস্তু কীভাবে পাওয়া যায় তা কোনও বস্তু হিসাবে ব্যাখ্যা করতে পারেন
ট্র্যাজনো রবার্তো

0

আপনি যদি নিজের বট বাস্তবায়ন করেন তবে একটি গোষ্ঠীর নাম -> আইডি টেবিল সঞ্চিত রাখুন এবং একটি আদেশ দিয়ে জিজ্ঞাসা করুন। তারপরে আপনি নাম অনুসারেও পাঠাতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.