فیلتر کردن پیامها در دایرکت با API اینستاگرام
مقدمه
مدیریت دایرکتهای اینستاگرام، مخصوصاً برای پیجهای تجاری و بلاگرها، اهمیت زیادی دارد. دریافت پیامهای اسپم، تبلیغاتی، یا غیرمرتبط میتواند باعث اتلاف وقت و کاهش بهرهوری شود. با استفاده از Instagram Graph API، میتوان پیامهای دایرکت را دستهبندی و فیلتر کرد تا فقط پیامهای مهم و مرتبط پردازش شوند. در این مقاله، روشهای فیلتر کردن پیامها در دایرکت اینستاگرام را بررسی میکنیم.
۱. دریافت پیامهای دایرکت با API اینستاگرام
برای فیلتر کردن پیامها، ابتدا باید بتوانیم پیامهای دایرکت را دریافت کنیم. این کار از طریق Instagram Graph API و با استفاده از Endpoint مربوط به پیامها انجام میشود.
نمونه درخواست برای دریافت پیامهای دایرکت:
curl -X GET "https://graph.facebook.com/v19.0/USER_ID/conversations?access_token=YOUR_ACCESS_TOKEN"
این درخواست، لیستی از مکالمات دایرکت را برمیگرداند.
USER_ID باید مقدار شناسه کاربری اینستاگرام باشد.
۲. فیلتر کردن پیامها بر اساس فرستنده
اگر بخواهید فقط پیامهای افرادی که در لیست فالوورها هستند را ببینید، میتوانید شناسه فرستنده را بررسی کنید.
روش اجرا:
ابتدا شناسه فرستنده پیام را دریافت کنید.
بررسی کنید که آیا این کاربر شما را فالو کرده است یا خیر.
نمونه کد در پایتون:
import requests
ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"
USER_ID = "YOUR_INSTAGRAM_USER_ID"
# دریافت پیامهای دایرکت
url = f"https://graph.facebook.com/v19.0/{USER_ID}/conversations?access_token={ACCESS_TOKEN}"
response = requests.get(url).json()
for conversation in response['data']:
sender_id = conversation['participants']['data'][0]['id']
# بررسی فالو بودن فرستنده
follow_url = f"https://graph.facebook.com/v19.0/{sender_id}/followers?access_token={ACCESS_TOKEN}"
follow_response = requests.get(follow_url).json()
if follow_response.get('data'):
print(f"پیام از {sender_id} دریافت شد و کاربر در لیست فالوورهاست.")
else:
print(f"پیام از {sender_id} نادیده گرفته شد، چون در لیست فالوورها نیست.")
۳. فیلتر کردن پیامها بر اساس کلمات کلیدی
اگر میخواهید پیامهای حاوی کلمات نامناسب، تبلیغاتی یا اسپم را فیلتر کنید، میتوانید متن پیام را بررسی کنید.
مثال کلمات ممنوعه:
“رایگان”
“کلیک کن”
“لینک”
نمونه کد در پایتون:
# لیست کلمات ممنوعه
blocked_words = ["رایگان", "کلیک کن", "لینک", "تبلیغ", "خرید فالوور"]
for conversation in response['data']:
last_message = conversation['messages']['data'][0]['message']
if any(word in last_message for word in blocked_words):
print(f"پیام '{last_message}' نادیده گرفته شد.")
else:
print(f"پیام معتبر: {last_message}")
این کد پیامهایی که شامل کلمات نامناسب باشند را فیلتر میکند.
۴. فیلتر کردن پیامها بر اساس طول و تعداد پیامها
برخی پیامها به صورت اسپم با طول زیاد ارسال میشوند. میتوانیم این پیامها را نادیده بگیریم.
نمونه کد:
MAX_LENGTH = 200 # حداکثر طول مجاز پیام
for conversation in response['data']:
message = conversation['messages']['data'][0]['message']
if len(message) > MAX_LENGTH:
print("پیام بسیار طولانی بود و نادیده گرفته شد.")
else:
print("پیام مجاز:", message)
پیامهایی که بیش از ۲۰۰ کاراکتر دارند، فیلتر خواهند شد.
۵. انتقال پیامهای فیلترشده به یک پوشه خاص
به جای حذف کردن پیامها، میتوان آنها را به یک پوشه خاص (Spam Folder) منتقل کرد.
نمونه درخواست برای تغییر دسته پیام:
curl -X POST "https://graph.facebook.com/v19.0/THREAD_ID?access_token=YOUR_ACCESS_TOKEN" \
-F "folder=spam"
THREAD_ID شناسه مکالمه است که باید از API دریافت شود.
همچنین بخوانید: پروژه خودکار سازی مدیریت اینستاگرام با API
نتیجهگیری
با استفاده از API اینستاگرام میتوان پیامهای دایرکت را دریافت و فیلتر کرد.
میتوان پیامها را بر اساس فرستنده، کلمات کلیدی، طول پیام و تعداد پیامها فیلتر کرد.
برای جلوگیری از حذف ناخواسته پیامها، میتوان پیامهای فیلترشده را به پوشه اسپم منتقل کرد.
با پیادهسازی این روشها، میتوانید دایرکتهای اینستاگرام خود را بهطور هوشمندانه مدیریت کنید و فقط روی پیامهای مهم تمرکز داشته باشید.
سوالات متداول
۱. آیا API اینستاگرام به ما اجازه حذف پیامها را میدهد؟
خیر، در حال حاضر Instagram Graph API امکان حذف پیامها را ندارد، اما میتوان آنها را نادیده گرفت یا به پوشه اسپم منتقل کرد.
۲. آیا میتوان پیامهای خاص را به صورت خودکار پاسخ داد؟
بله، با استفاده از API و یک ربات چت هوشمند میتوان پاسخ خودکار به پیامهای خاص ارسال کرد.
۳. آیا فیلتر کردن پیامها باعث مسدود شدن حساب اینستاگرام میشود؟
خیر، اگر از API رسمی اینستاگرام استفاده کنید و محدودیتهای اینستاگرام را رعایت کنید، مشکلی پیش نخواهد آمد.