ساخت ابزار زمانبندی پست و استوری با API اینستاگرام
مقدمه
انتشار منظم محتوا در اینستاگرام یکی از مهمترین عوامل موفقیت در جذب فالوور و افزایش تعامل است. اما مشکل اینجاست که همیشه نمیتوانیم سر ساعت مناسب، آنلاین باشیم و پستها را دستی منتشر کنیم. راهحل چیست؟ ساخت یک ابزار زمانبندی (Scheduler) که پستها و استوریهای اینستاگرام را بهصورت خودکار منتشر کند! در این مقاله یاد میگیریم چطور با استفاده از API اینستاگرام، یک ابزار زمانبندی حرفهای بسازیم که پستها و استوریها را در زمان دلخواه منتشر کند.
قدم ۱: دریافت دسترسی به API اینستاگرام
برای استفاده از API اینستاگرام و زمانبندی پستها، باید یک اپلیکیشن در Facebook Developer ایجاد کنیم.
۱.۱ ایجاد اپلیکیشن در Facebook Developer
- به Facebook for Developers بروید.
- یک اپلیکیشن جدید بسازید.
- Instagram Graph API را فعال کنید.
- در قسمت Permissions، مجوزهای زیر را اضافه کنید:
instagram_basic
instagram_content_publish
pages_show_list
pages_read_engagement
۱.۲ دریافت Access Token
برای ارسال درخواست به API، نیاز به یک Access Token معتبر دارید. این توکن را میتوان از Graph API Explorer دریافت کرد. دقت کنید که این توکن حتماً دائمی (Long-lived Token) باشد تا بعد از چند ساعت منقضی نشود.
قدم ۲: آمادهسازی پست برای انتشار خودکار
۲.۱ تنظیم اطلاعات پست برای انتشار
قبل از ارسال درخواست، باید اطلاعات پست یا استوری را مشخص کنیم:
- عکس یا ویدیو
- کپشن
- تگها و هشتگها (اختیاری)
- زمان انتشار (Scheduled Time)
۲.۲ آپلود عکس یا ویدیو با Instagram API
برای انتشار یک پست، ابتدا باید محتوا را روی سرور اینستاگرام آپلود کنیم و سپس آن را منتشر کنیم.
درخواست آپلود رسانه (Media Upload Request)
POST https://graph.facebook.com/v17.0/{user-id}/media
Content-Type: application/json
Authorization: Bearer {access-token}
{
"image_url": "https://yourwebsite.com/image.jpg",
"caption": "این یک پست زمانبندی شده است! 🚀",
"scheduled_publish_time": 1714550400,
"media_type": "IMAGE"
}
image_url
: آدرس عکس (یا ویدیو) که میخواهید منتشر کنید.caption
: کپشن پست.scheduled_publish_time
: زمان انتشار پست بهصورت تایماستمپ یونیکس (Unix Timestamp).
۲.۳ تأیید آپلود و انتشار پست
بعد از ارسال درخواست بالا، یک id
دریافت میکنیم که نشاندهنده فایل آپلود شده است. حالا باید این id
را به API ارسال کنیم تا پست منتشر شود.
POST https://graph.facebook.com/v17.0/{user-id}/media_publish
Authorization: Bearer {access-token}
{
"creation_id": "{media-id}"
}
قدم ۳: زمانبندی استوری اینستاگرام
انتشار استوری کمی متفاوت است و نیاز به container
دارد.
۳.۱ ارسال درخواست آپلود استوری
POST https://graph.facebook.com/v17.0/{user-id}/media
Authorization: Bearer {access-token}
{
"image_url": "https://yourwebsite.com/story.jpg",
"media_type": "STORY"
}
۳.۲ تأیید و انتشار استوری
POST https://graph.facebook.com/v17.0/{user-id}/media_publish
Authorization: Bearer {access-token}
{
"creation_id": "{story-id}"
}
قدم ۴: خودکارسازی فرآیند با Python
حالا که اصول کار را یاد گرفتیم، بیایید یک اسکریپت پایتون بسازیم که پستها را بهصورت خودکار زمانبندی کند.
import requests
import time
ACCESS_TOKEN = "your-access-token"
USER_ID = "your-user-id"
IMAGE_URL = "https://yourwebsite.com/image.jpg"
CAPTION = "این یک پست زمانبندی شده است!"
SCHEDULED_TIME = int(time.time()) + 3600 # یک ساعت بعد
# ارسال درخواست برای آپلود عکس
upload_url = f"https://graph.facebook.com/v17.0/{USER_ID}/media"
payload = {
"image_url": IMAGE_URL,
"caption": CAPTION,
"scheduled_publish_time": SCHEDULED_TIME,
"media_type": "IMAGE",
"access_token": ACCESS_TOKEN
}
response = requests.post(upload_url, data=payload)
media_id = response.json().get("id")
# انتشار پست
publish_url = f"https://graph.facebook.com/v17.0/{USER_ID}/media_publish"
publish_payload = {"creation_id": media_id, "access_token": ACCESS_TOKEN}
publish_response = requests.post(publish_url, data=publish_payload)
print(publish_response.json())
این اسکریپت عکس را آپلود میکند و آن را برای انتشار در یک ساعت آینده زمانبندی میکند.
قدم ۵: اضافه کردن رابط کاربری (اختیاری)
اگر بخواهیم یک ابزار واقعی بسازیم، میتوانیم یک رابط کاربری ساده با Flask یا Django در پایتون طراحی کنیم که کاربر بتواند:
- عکس یا ویدیو آپلود کند
- کپشن بنویسد
- زمان انتشار را مشخص کند
- وضعیت پستهای زمانبندی شده را ببیند
نکات امنیتی مهم در استفاده از API اینستاگرام
- دسترسیها را محدود کنید و فقط از توکنهای ایمن و موقت استفاده کنید.
- دادهها را در دیتابیس امن ذخیره کنید و اطلاعات حساس را رمزنگاری کنید.
- از Webhook اینستاگرام برای دریافت اعلانهای مربوط به انتشار پستها استفاده کنید.
همچنین بخوانید: تشخیص بهینه ترین زمان انتشار پست با API اینستاگرام
نتیجهگیری
ساخت ابزار زمانبندی پست و استوری یکی از بهترین روشها برای مدیریت حرفهای اینستاگرام است. با استفاده از API اینستاگرام میتوان پستها را بهصورت خودکار آپلود و منتشر کرد و از این طریق، بازدهی انتشار محتوا را افزایش داد. این روش به برندها، اینفلوئنسرها و مدیران شبکههای اجتماعی کمک میکند تا پستهای خود را در زمانهای بهینه منتشر کنند و تعامل بیشتری داشته باشند.
سوالات متداول
۱. آیا API اینستاگرام امکان زمانبندی ویدیوهای IGTV و Reels را هم میدهد؟
بله، اما برای IGTV و Reels باید media_type را برابر VIDEO قرار دهید و فرآیند آپلود کمی متفاوت است.
۲. آیا میتوان چندین پست را همزمان زمانبندی کرد؟
بله، API اینستاگرام اجازه میدهد چندین پست را با زمانهای مختلف در صف انتشار قرار دهید.
۳. آیا API اینستاگرام رایگان است؟
بله، اما محدودیتهایی در تعداد درخواستها و نرخ استفاده دارد.
۴. چگونه میتوانم لیست پستهای زمانبندیشده را ببینم؟
میتوانید با ارسال یک درخواست GET به /insights
اطلاعات مربوط به پستهای زمانبندی شده را دریافت کنید.