فوروارد کردن پیامهای دایرکت به ایمیل یا پیامک با استفاده از API اینستاگرام
مقدمه
در بسیاری از کسبوکارها و اکانتهای حرفهای اینستاگرام، پیامهای دایرکت نقش حیاتی در ارتباط با مشتریان دارند. اما وقتی تعداد پیامها زیاد میشود یا تیم پشتیبانی متمرکز بر ایمیل یا پیامک است، نیاز به سیستمی برای فوروارد خودکار پیامها به دیگر کانالهای ارتباطی احساس میشود. در این مقاله بررسی میکنیم که آیا میتوان با استفاده از API اینستاگرام پیامهای دایرکت را دریافت و به ایمیل یا پیامک فوروارد کرد، چه محدودیتهایی وجود دارد، و چگونه میتوان چنین سرویسی را پیادهسازی کرد.
پیشنیازها
پیش از شروع طراحی این سیستم، لازم است برخی الزامات را فراهم کنید:
- یک حساب بیزینسی یا کریتور که به صفحه فیسبوک متصل باشد
- ساخت اپلیکیشن در Facebook for Developers با دسترسی به قابلیت Messaging
- داشتن Access Token معتبر
- دسترسی به سیستمهای ارسال ایمیل (مثل SMTP یا Mailgun) و پیامک (مثل Twilio یا Kavenegar)
- توانایی پیادهسازی برنامه با زبانهایی مانند Python یا Node.js
آیا API اینستاگرام اجازه دسترسی به دایرکت را میدهد؟
بله، اما فقط در شرایط خاص. Instagram Graph API در حال حاضر فقط به پیامهای دایرکت برای حسابهای بیزینسی و از طریق Facebook Messenger API دسترسی میدهد. این ویژگی برای اکانتهایی فعال است که Messaging on Instagram را در تنظیمات Facebook Page فعال کردهاند.
مرحله اول: فعالسازی Messaging API برای اینستاگرام
برای استفاده از قابلیت پیامرسانی، ابتدا باید Messaging API را در صفحه فیسبوک متصل فعال کنید:
- وارد Facebook Page شوید
- به بخش Settings > Messaging بروید
- گزینه “Allow access to Instagram messages in Inbox” را فعال کنید
سپس در داشبورد Facebook for Developers، اپلیکیشن خود را به Instagram Messaging API متصل کرده و مجوزهای pages_messaging
, instagram_basic
, instagram_manage_messages
را درخواست کنید.
مرحله دوم: دریافت پیامهای جدید
پس از دریافت مجوزهای لازم و ایجاد Subscribed Webhook، میتوان پیامهای جدید را با استفاده از Webhook دریافت کرد. برای این کار نیاز است که اپلیکیشن شما روی یک آدرس اینترنتی قابل دسترس (مثلاً با استفاده از ngrok در زمان توسعه) گوش کند:
from flask import Flask, request
app = Flask(__name__)
@app.route("/webhook", methods=["POST"])
def webhook():
data = request.json
print("پیام جدید دریافت شد:", data)
# استخراج پیام
message_text = data["entry"][0]["messaging"][0]["message"]["text"]
sender_id = data["entry"][0]["messaging"][0]["sender"]["id"]
# ارسال به ایمیل یا پیامک
forward_to_email(message_text)
forward_to_sms(message_text)
return "ok", 200
مرحله سوم: ارسال به ایمیل
برای ارسال پیام به ایمیل، میتوانید از SMTP استفاده کنید یا از سرویسهایی مانند Mailgun کمک بگیرید:
import smtplib
from email.mime.text import MIMEText
def forward_to_email(message):
msg = MIMEText(message)
msg["Subject"] = "دایرکت جدید از اینستاگرام"
msg["From"] = "your_email@example.com"
msg["To"] = "recipient@example.com"
with smtplib.SMTP("smtp.example.com", 587) as server:
server.login("your_email@example.com", "your_password")
server.send_message(msg)
مرحله چهارم: ارسال پیامک
برای ارسال پیامک نیز میتوان از API سرویسهایی مثل Kavenegar یا Twilio استفاده کرد:
import requests
def forward_to_sms(message):
api_key = "YOUR_KAVENEGAR_API_KEY"
phone_number = "+989123456789"
url = f"https://api.kavenegar.com/v1/{api_key}/sms/send.json"
payload = {
"receptor": phone_number,
"message": f"دایرکت جدید: {message}"
}
response = requests.post(url, data=payload)
print("پیامک ارسال شد:", response.json())
نکات مهم و چالشها
- دسترسی فقط برای حسابهای بیزینسی امکانپذیر است. حسابهای شخصی یا creator به پیامها دسترسی ندارند.
- برای دریافت پیامها باید Webhook فعال باشد و از Subscriptions استفاده شود.
- API فقط به پیامهای دایرکت جدید که بعد از راهاندازی Subscriptions ارسال شوند، دسترسی دارد.
- برای امنیت، توصیه میشود پیامها را قبل از ارسال فیلتر کنید (مثلاً فقط در صورت وجود کلیدواژه خاص ارسال شوند).
- برخی سرویسهای پیامک برای ایران محدودیت دارند؛ سرویسهایی مثل Kavenegar یا SMS.ir گزینههای مناسبی هستند.
همچنین بخوانید: فیلتر کردن پیامها در دایرکت با API اینستاگرام
نتیجهگیری
با استفاده از Instagram API و Facebook Messenger API میتوان سیستمی ساخت که پیامهای دایرکت اینستاگرام را به صورت خودکار به ایمیل یا پیامک فوروارد کند. این قابلیت به تیمهای پشتیبانی و فروش کمک میکند تا بدون نیاز به بررسی مداوم دایرکتها، فوراً از پیامهای دریافتی مطلع شوند و پاسخگویی سریعتری داشته باشند. البته محدودیتهایی در سطح دسترسی و ساختار دادهها وجود دارد که باید در زمان طراحی و توسعه به آنها توجه ویژه داشت.
سوالات متداول
آیا همه حسابها میتوانند از این قابلیت استفاده کنند؟
خیر، فقط حسابهای بیزینسی متصل به صفحه فیسبوک و دارای دسترسی Messaging API میتوانند پیامها را دریافت کنند.
آیا امکان دریافت پیامهای قدیمی وجود دارد؟
خیر، فقط پیامهایی که پس از فعالسازی Webhook ارسال میشوند قابل دسترسیاند.
آیا میتوان پاسخ خودکار به پیامها ارسال کرد؟
بله، با ترکیب این API و سیستم پاسخگویی خودکار، امکان پیادهسازی بات دایرکت نیز وجود دارد.