- کار با 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) ارسال کنید ، در قسمت بعد به تحلیل و بررسی خروجی ها و ساخت ربات آینه می پردازیم.
پایان قسمت سوم
موفق باشید.