کتابخانۀ کار با API ایتا برای پایتون
ایتاپایکیت یک ابزار غیررسمی به زبان پایتون است که راهکار هایی برای استفاده از API های این پیامرسان را ارائه میدهد.
نکته: برای آنکه بتوانید در کانالها و گروهها پیغام یا فایل ارسال کنید، قبل از هرکاری لازم است، کاربر @sender را در کانال یا گروه خود به عنوان مدیر اضافه کنید. نکته: با توجه به آپدیت مداوم نسخه وب ایتا توسط شرکت سازنده ممکن است برخی از ویژگی های این کتابخانه موقتا از کار بیوفتد، اگر با چنین چیزی مواجه شدید، میتوانید با ایجاد issue در مخزن گیتهاب، ما را مطلع کنید تا هرچه سریعتر مشکل را برطرف سازیم.
نصب
شما میتوانید با دستور زیر آخرین نسخۀ eitaapykit را برای پایتون دریافت نمایید:
همچنین نسخه درحال توسعه نیز از طریق دستور زیر قابل نصب است:
کلاس پایۀ Eitaa
برای اینکه بتوانید پیغام یا فایل ارسال کنید، لازم است ابتدا به صورت زیر یک نمونه(instance) از آن ایجاد کنید و سپس توکنی را که از سایت ایتایار دریافت کردهاید را به عنوان پارامتر به کلاس Eitaa
بدهید:
ارسال پیغام
برای ارسال پیغام(پیام به صورت متن) کافی است از متد send_message
در کلاس Eitaa
استفاده کنید.
پارامتر های متد send_message
:
chat_id
: شناسۀ یکتای کانال یا گروه.
- برای ارسال پیغام به کانال، کافی است آیدی کانال خود را بدون @
به آن نسبت بدهید.
- اگر کانال شما خصوصی است و یا قصد ارسال پیغام به یک گروه را دارید، کافی است لینک آن را نسبت بدهید.
-
text : str
: متن پیغامی که قصد ارسال آن را دارید. -
pin : bool
(اختیاری) : با تغییر آن بهTrue
پیغام ارسالی در چت پین میشود، به صورت پیشفرضFalse
است. -
view_to_delete : int
(اختیاری) : اگر تعداد بازدید های پیغام به این عدد برسد، به صورت خودکار حذف خواهد شد. -
disable_notification : bool
(اختیاری): با تنظیم آن بر رویTrue
هیچگونه اعلانی برای مخاطبان ارسال نمیشود، به صورت پیشفرض رویFalse
تنظیم شده است. -
reply_to_message_id : int
(اختیاری): شناسۀ پیامی که میخواهید پیغام بر روی آن پاسخ داده شود. -
date
(اختیاری) : فرمت زمانی Unix که میتواند زمانی در آینده را برای ارسال پیام مشخص کند.
مثال:
تابع یک پاسخ JSON حاوی اطلاعاتی در مورد پیام ارسال شده برمی گرداند که حاوی فیلد های زیر است:
ok
(بولین):
- True
: به معنی این است پیغام با موفقیت ارسال شده است.
- False
: به معنی عدم موفقیت در ارسال پیام است.
description
(رشتهای، اختیاری): (تنها در صورتی ظاهر میشود که فیلدok
برابر باFalse
باشد) این فیلد توضیحی دربارۀ علت ارسال نشدن پیام ارائه میدهد.
ارسال فایل
برای ارسال فایل به یک کانال یا گروه کافی است از متد send_file
در کلاس Eitaa
استفاده کنید.
پارامتر های متد send_file
:
chat_id
: شناسۀ یکتای کانال یا گروه.
- برای ارسال پیغام به کانال، کافی است آیدی کانال خود را بدون @
به آن نسبت بدهید.
- اگر کانال شما خصوصی است و یا قصد ارسال پیغام به یک گروه را دارید، کافی است لینک آن را نسبت بدهید.
- file: str
: مسیر فایلی که میخواهید ارسال کنید.
- text : str
: متن پیغامی که قصد ارسال آن را دارید.
-
pin : bool
(اختیاری) : با تغییر آن بهTrue
پیغام ارسالی در چت پین میشود، به صورت پیشفرضFalse
است. -
view_to_delete : int
(اختیاری) : اگر تعداد بازدید های پیغام به این عدد برسد، به صورت خودکار حذف خواهد شد. -
disable_notification : bool
(اختیاری): با تنظیم آن بر رویTrue
هیچگونه اعلانی برای مخاطبان ارسال نمیشود، به صورت پیشفرض رویFalse
تنظیم شده است. -
reply_to_message_id : int
(اختیاری): شناسۀ پیامی که میخواهید پیغام بر روی آن پاسخ داده شود. -
date
(اختیاری) : فرمت زمانی Unix که میتواند زمانی در آینده را برای ارسال پیام مشخص کند.
مثال:
تابع یک پاسخ JSON حاوی اطلاعاتی در مورد پیام ارسال شده برمی گرداند که حاوی فیلد های زیر است:
ok
(بولین):
- True
: به معنی این است پیغام با موفقیت ارسال شده است.
- False
: به معنی عدم موفقیت در ارسال پیام است.
description
(رشتهای، اختیاری): (تنها در صورتی ظاهر میشود که فیلدok
برابر باFalse
باشد) این فیلد توضیحی دربارۀ علت ارسال نشدن پیام ارائه میدهد.
دریافت اطلاعات یک کانال یا کاربر
شما میتوانید با استفاده از متد get_info
اطلاعات عمومی یک کانال و یا کاربر را بدست بیاورید.
پارامتر های متد get_info
:
- channel_or_user_id: str
: شناسۀ عمومی کانال یا کاربر
مثال:
نمونه اطلاعات دریافتی:{
"name": "راهنمای جامع ایتا",
"image_url": "will contains a url",
"users": "205.9K",
"description": "پاسخ به پرسش\u200cهای متداول کاربران ایتا\n\nپشتیبانی کاربران:\n@support\n\nکانال اطلاع\u200cرسانی رسمی:\n@eitaa\n\nوبسایت رسمی برنامه:\nhttps://eitaa.com", "is_verified": true,
"is_channel": true
}
دریافت آخرین پیام های یک کانال عمومی
متد get_latest_messages
که یک متد ایستا(static method) است، میتواند برای دریافت چند پیام آخر یک کانال(معمولا ده پیام) استفاده شود. مقدار خروجی این متد یک لیست متشکل از dict
هایی خواهد بود که هر یک حاوی اطلاعات هر پیام است و فیلد هایی به شکل زیر دارد:
- text
: متن پیام
-
image_link
: آدرس اینترنتی تصویر پیام(اگر پیام به صورت کاملا متنی باشد، خالی خواهد بود) -
views
: تعداد بازدید های پیام -
iso_time
: زمان ارسال پیام به فرمت ISO -
message_number
: شمارۀ پیام مثال:
دریافت یک پست خاص از یک کانال
برای دریافت متن و اطلاعات یک پست کانال، کافی است آیدی کانال و شمارۀ آن پست را داشته باشید و به شکل زیر میتوانید مشخصات آن پست، نظیر نام کانال، نام نویسنده، تاریخ پست، متن پست، تاریخ سرویس، زمان و تامنیل ویدئو را برمیگرداند.
تابعget_message
یک دیکشنری شامل اطلاعات زیر را برمیگرداند:
{
"owner_name" : ... # نام کانال
"channel_url" : ... # لینک کانال
"message_url" : ... # لینک پست
"message_text" : ... # متن پست
"views" : ... # تعداد بازدید پست
"date" : ... # تاریخ پست شدن
"service_date" : ... # تاریخ سرویس
"author_name" : ... # نام نویسنده
"video_time" : ... # زمان ویدئو
"video_thumb" : ... # لینک تامنیل ویدئو
}
دریافت هشتگ های ترندشده
متد get_trends
که یک متد ایستا(static method) در کلاس پایۀ Eitaa
است، میتواند برای استخراج هشتگ های ترندشده در ایتا، در بازه های زمانی متفاوت استفاده شود. این متد یک لیست متشکل از چهار dict
یا دیکشنری برمیگرداند:
-
last_12_hours
: لیست هشتگ های ترند شده در 12 ساعت گذشته همراه با تعداد هشتگها(که خودش متشکل از لیست از دیکشنریها است که دارای دو فیلدname
وcount
هستند، که شامل نام هشتگ و تعداد آن میشود). -
last_24_hours
: لیست هشتگ های ترند شده در 24 ساعت گذشته همراه با تعداد هشتگها(که خودش متشکل از لیست از دیکشنریها است که دارای دو فیلدname
وcount
هستند، که شامل نام هشتگ و تعداد آن میشود). -
last_7_days
: لیست هشتگ های ترند شده در 7 روز گذشته همراه با تعداد هشتگها(که خودش متشکل از لیست از دیکشنریها است که دارای دو فیلدname
وcount
هستند، که شامل نام هشتگ و تعداد آن میشود). -
last_30_days
: لیست هشتگ های ترند شده در 30 روز گذشته همراه با تعداد هشتگها(که خودش متشکل از لیست از دیکشنریها است که دارای دو فیلدname
وcount
هستند، که شامل نام هشتگ و تعداد آن میشود).
مثال:
خروجی نمونه:
{
"last_12_hours": [
{"name": "#اربعین", "count": "+1500"},
{"name": "#امام_حسین", "count": "+500"},
{"name": "#امام_زمان", "count": "+500"},
{"name": "#شب_جمعه", "count": "+400"},
{"name": "#کربلا", "count": "+300"}
],
"last_24_hours": [
{"name": "#اربعین", "count": "+3000"},
{"name": "#امام_حسین", "count": "+1000"},
{"name": "#امام_زمان", "count": "+700"},
{"name": "#کربلا", "count": "+600"},
{"name": "#شب_جمعه", "count": "+400"}
],
...
}
ساخت بات(برنامه) ایتا
برنامه یک گفتوگو در ایتاست که امکان ارسال و دریافت پیام، پیوست برنامک و اجرای برنامکها را فراهم میکند. در برخی از پیامرسانها این وظیفه را «بات» انجام میدهد.
چگونه یک بات بسازیم؟
- با زدن روی این لینک، وارد سامانه ایتایار شوید و به پنل کاربری خود بروید (اگر اکانت ندارید، ابتدا لازم است ثبتنام کنید)
- سپس از انتهای منوی سمت راست، روی دکمه «برنامه» بزنید.
- پس از انتخاب گزینه «افزودن برنامه» در صفحه جدید، اطلاعات مربوط به برنامه، شامل تصویر پروفایل، نام، نام کاربری و بیوی برنامه را وارد کنید.
- همچنین عنوان دکمه، آدرس دکمه و عکس و پیام شروع برنامه را در همین بخش وارد کنید.
- حالا روی گزینه ساخت برنامه بزنید.
ارسال پیام به کاربران توسط بات
بعد از اینکه برنامه را ساختید حالا میتوانید با استفاده از این کتابخانه توسط بات پیام متنی ارسال کنید، کافی است یک نمونه از کلاس Eitaa
ایجاد کنید و از متد send_message_to_bot
استفاده کنید:
from eitaa import Eitaa
token = "توکن دریافتی شما از ایتایار"
e = Eitaa(token)
chat_id = "شامل یک عدد چند رقمی است که از سایت ایتایار قابل دریافت است"
text = "متنی که میخواهید توسط بات ارسال شود"
e.send_message_to_bot(chat_id,text)
هشدار
ارسال پیام تنها زمانی ممکن است که کاربر به شما دسترسی ارسال داده باشد.
این دسترسی با زدن کلید شروع توسط کاربر و یا در زمان باز کردن با لینک مستقیم در یک پیغام از کاربر دریافت میشود.
درباره من
سلام من حسنم!
من یک توسعهدهندهی علاقهمند به ابزارهای متنباز و ساختن چیزهایی هستم که کار دیگران را راحتتر میکنند. این پکیج نتیجهی تجربه، نیاز شخصی، و تلاش برای به اشتراک گذاشتن دانش با دیگر برنامهنویسهاست. خوشحال میشم اگر بازخورد، پیشنهاد یا مشکلی دیدید، از طریق GitHub یا ایمیل باهام در تماس باشید.