ساخت ربات telegram - قسمت سوم - api های تلگرام

ساخت ربات telegram - قسمت سوم - api های تلگرام

- کار با API های تلگرام :

بعد از مطالعه دو قسمت قبل وقت آن رسیده که اولین پیام را بوسیله ربات برای خود و دیگر کاربرانتان ارسال کنید ، برای این منظور ما در این قسمت نحوه کار با دو متد getUpdates و sendMessage را آموزش میدهیم.

برای شروع ، شما ابتدا باید با دستور ارسال پیام بوسیله ربات در تلگرام آشنا شوید و بتوانید بدون یک خط برنامه نویسی ، توانایی ارسال پیام متنی (البته فعلا) به کاربر را داشته باشید ، برای ارسال پیام متنی بوسیله ربات شما دو پارامتر را لازم دارید که به متد ارسال پیام بدهید (sendMessage) ، این دو پارامتر به ترتیب chat_id و text هستند که text همان پیام متنی شما برای ارسال است و chat_id چیست ؟!

chat_id :

درواقع chat_id ، ای دی منحصر به فردی (primaryKey) است که برای هر حساب کاربری در تلگرام تعریف شده است ، لازم است بگویم این chat_id با شماره تلفن و یوزرنیم (همان به اصطلاح ای دی هایی که با کاراکتر @ تعریف شده اند) متفاوت است و حتی پس از حذف حساب کاربری (Delete Account) هم از بین نمیرود ! برای بدست آوردن chat_id دو راه را پیشنهاد میکنم ، راه اول استفاده از متد getUpdates تلگرام است که در ادامه به آن می پردازیم و راه دوم استفاده از ربات ForwardConverter_bot است که به سادگی می توانید به chat_id خودتان دست پیدا کنید.

کار با متد getUpdates :

خب وقت آن رسیده پیام های دریافت شده بوسیله ربات خود را مشاهده کنید ، برای این کار شما نیاز به داشتن Token ربات خود (در قسمت دوم نحوه دریافت توکن را توضیح دادیم) می باشید ، با وارد کردن آدرس زیر در مرورگر خود :

https://api.telegram.org/bot<-Token->/getupdates

و جایگزین کردن Token ربات خود با مقدار <-Token-> ، به چنین خروجی بر میخورید ! (البته اگر کسی start نکرده باشد)

{
  "ok": true,
  "result": []
}

و بعد از start ربات ، خروجی مانند زیر است :

{
  "ok": true,
  "result": [
    {
      "update_id": 282474990,
      "message": {
        "message_id": 13,
        "from": {
          "id": 116589236,
          "is_bot": false,
          "first_name": "Mohammad",
          "last_name": "Zarchi",
          "language_code": "en-US"
        },
        "chat": {
          "id": 116589236,
          "first_name": "Mohammad",
          "last_name": "Zarchi",
          "type": "private"
        },
        "date": 1536464070,
        "text": "/start",
        "entities": [
          {
            "offset": 0,
            "length": 6,
            "type": "bot_command"
          }
        ]
      }
    }
  ]
}

شاید این خروجی برای شما تا حدودی نا مفهوم باشد ، اما ما در این قسمت قصد تحلیل بررسی این خروجی که از نوع جیسون (json) را نداریم و فقط قصد بدست آوردن chat_id را داریم تا بتوانیم بوسیله مرورگر برای خودمان یک پیام ساده ارسال کنیم. برای بدست آوردن chat_id از روی این خروجی باید به قسمتی از خروجی بالا که در زیر دوباره بازنویسی شده توجه کنید :

"chat": {
    "id": 116589236,
    "first_name": "Mohammad",
    "last_name": "Zarchi",
    "type": "private"
  }

مقدار فیلد id در واقع همان chat_id است که ما از آن صحبت می کردیم ، حال وقت آن است که با استفاده از متد sendMessage یک پیام ساده برای خود ارسال کنیم.

کار با متد sendMessage :

همانطور که ابتدای صحبت گفته شد این متد دو پارامتر ضروری دارد که به ترتیب chat_id و text است که برای ارسال پیام به کار میرود ، که هم اکنون chat_id را در اختیار داریم (البته فعلا چت ای دی خودمون ?) ، پارامتر دوم text یک مقدار دلخواه است و هر نوع متن (به هر زبانی) را شامل می شود ، در نهایت با داشتن این متد و پارامترهایش برای ارسال پیام بوسیله مرورگر به طریق زیر عمل میکنیم :

https://api.telegram.org/bot<-Token->/sendMessage?chat_id=116589236&text=Hi

با دقت به آدرس بالا و دو پارامتر chat_id و text خواهید فهمید که چگونه با استقاده از متد sendMessage به کاربر پیام ارسال شد ، خروجی آدرس بالا در صورت موفقیت آمیز بودن ، مانند خروجی زیر است :

{
  "ok": true,
  "result": {
    "message_id": 14,
    "from": {
      "id": 595663424,
      "is_bot": true,
      "first_name": "Test Telegram API",
      "username": "TestTelegramMethodes_bot"
    },
    "chat": {
      "id": 116589236,
      "first_name": "Mohammad",
      "last_name": "Zarchi",
      "type": "private"
    },
    "date": 1536465206,
    "text": "Hi"
  }
}

تبریک ! شما تا این مرحله توانستید بوسیله ربات برای خود یک پیغام (هر چند ساده مانند Hi) ارسال کنید ، در قسمت بعد به تحلیل و بررسی خروجی ها و ساخت ربات آینه می پردازیم.

پایان قسمت سوم

موفق باشید.

از بهترین نوشته‌های کاربران سکان آکادمی در سکان پلاس


online-support-icon