مدیریت InlineQueryResultPhoto در تلگرام

telegram bot api inline query result photo
18 بهمن 1403

مقدمه


بچه‌ها، این روزها خیلی از ماها از ربات‌ها در تلگرام استفاده می‌کنیم. یکی از امکانات جالبی که ربات‌ها دارند، اینه که می‌تونن واکنش‌های این‌لاین (Inline) رو به درخواست‌های کاربر بدهند. الان می‌خوایم دربارهٔ InlineQueryResultPhoto صحبت کنیم که برای ارسال عکس‌ها در پاسخ به یک درخواست این‌لاین استفاده میشه.


ما وقتی شما به یک ربات یک سوال می‌زنید یا مثلاً ازش می‌خواهید تا عکسی رو جستجو کنه، ربات می‌تونه با استفاده از پارامترهای تعریف‌شده، اطلاعاتی از جمله عکس‌ها رو به شما نشون بده. InlineQueryResultPhoto به شما این امکان رو میده تا عکس‌هایی رو که قابل کلیک و مشاهده در چت هستن رو برای کاربر ارسال کنین.


برای اینکه این کار رو انجام بدید، کافیه یه مقدار اطلاعات مثل photo_url، thumb_url و title رو به ربات بگید. در واقع، هر چی این اطلاعات بیشتر و دقیق‌تر باشه، نتیجه بهتری هم خواهید گرفت.


خب، بیایید با هم یه نمونه کد بررسی کنیم که چطور از این ویژگی استفاده کنیم. ما به یک تابلو برای نمایش عکس‌ها نیاز داریم، و بعد از آن، می‌تونیم به راحتی عکس‌ها رو بر اساس جستجوهایی که انجام میشه، برای کاربر ارسال کنیم.


مثال کد


{
"inline_query": {
"id": "12345",
"query": "cat",
"offset": ""
},
"result": [
{
"type": "photo",
"id": "1",
"photo_url": "https://example.com/photo.jpg",
"thumb_url": "https://example.com/photo_thumb.jpg",
"title": "عکس گربه"
}
]
}

توضیح کد


بیایید حالا کد رو خط به خط بررسی کنیم:



خط 1: {

این خط نشانهٔ شروع یک شیء در JSON هست.



خط 2: "inline_query": {...}

اینجا ما داریم یک پرسش این‌لاین رو تعریف میکنیم. درون این شیء، موارد مختلفی رو به ربات ارسال خواهیم کرد.



خط 3: "id": "12345",

هر پرسش باید یک شناسه منحصر به فرد داشته باشه تا ربات بتونه اونو تشخیص بده.



خط 4: "query": "cat",

در اینجا ما داریم کلمه جستجو رو مشخص میکنیم، در این مثال ما به دنبال «گربه» هستیم.



خط 5: "offset": ""

این قسمت برای مدیریت صفحه‌بندی و نمایش نتایج اضافی در صورت وجود استفاده می‌شه.



خط 6: "result": [...]

اینجا ما داریم نتایج جستجو رو تعریف میکنیم که شامل لیستی از عکس‌ها میشه.



خط 7: {

این خط زمان آغاز یک عکس در نتایج رو نشون میده.



خط 8: "type": "photo",

در اینجا نوع نتیجه رو مشخص کردیم که در این مورد ما داریم به عنوان یک عکس عمل می‌کنیم.



خط 9: "id": "1",

هر عکس هم باید یک شناسه منحصر به فرد داشته باشد.



خط 10: "photo_url": "https://example.com/photo.jpg",

اینجا URL عکس اصلی قرار داده می‌شه که باید قابل دسترسی باشه.



خط 11: "thumb_url": "https://example.com/photo_thumb.jpg",

این URL عکس کوچک یا تصویر پیش‌نمایش است که در نتایج جستجو نشان داده می‌شود.



خط 12: "title": "عکس گربه"}

در اینجا یک عنوان برای عکس مشخص کردیم که هنگام نمایش نتایج به کاربر نشان داده می‌شود.



خط 13: }

و در آخر، با این خط، نشان میدهیم که عکس تمام شده و به بلوک JSON ما می‌رسیم.



خط 14: }

این خط نیز پایان ساختار کلی JSON را مشخص می‌کند.


سوالات متداول

؟

InlineQueryResultPhoto چیه و چطور کار می‌کنه؟

؟

چطور می‌توانم عکس‌ها را به نتیجه این‌لاین اضافه کنم؟

؟

آیا می‌توانم چندین عکس به یک نتیجه این‌لاین اضافه کنم؟

؟

چطور می‌توانم عکس‌های جستجو شده را فیلتر کنم؟