این API برای همگامسازی مخاطبان، رسیدگی به دایرکت و کامنت و دریافت آمار جریانهای موجود طراحی شده است. ساخت یا تغییر جریان در این API ارائه نمیشود.
احراز هویت
در پنل، بخش API و اتصال به نرمافزارها، یک اتصال با پیجها و دسترسیهای لازم بسازید. در هر درخواست، کلید را در هدر Authorization با روش Bearer ارسال کنید. کلید یک سال اعتبار دارد و از پنل قابل تغییر یا لغو است.
پارامتر page شناسه داخلی پیج است و با page_id اینستاگرام تفاوت دارد. کلید conversation_key را از فهرست گفتگوها بگیرید و برای قرار دادن در URL کدگذاری کنید.
صفحهبندی نتایج
فهرستها در data قرار میگیرند. per_page بین ۱ تا ۱۰۰ است؛ برای صفحه بعد meta.next_cursor را در پارامتر cursor بفرستید. پاسخ تکرکورد هم در data قرار دارد.
فیلترهای درخواست
done و updated_since؛ کامنتها: media_id و parent_id. آمار جریان period=7
ارسال پاسخ
برای پاسخ دایرکت یا کامنت، message متنی با حداکثر ۱۰۰۰ نویسه بفرستید. در وضعیت uncertain دوباره ارسال نکنید؛ ابتدا نتیجه را در صندوق ورودی بررسی کنید.
curl -X POST 'https://highfollower.com/api/v1/pages/12/conversations/CONVERSATION_KEY/replies' \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"message":"Hello! How can we help?"}'
تغییر وضعیت گفتگو و برچسبها
برای تغییر وضعیت گفتگو، فیلد status را با open یا done بفرستید. برای جایگزینی برچسب مخاطب، آرایه tag_ids را بفرستید؛ آرایه خالی همه برچسبها را حذف میکند.
وبهوک اختصاصی
آدرس و رویدادها را در اتصال تنظیم کنید و از ارسال آزمایشی استفاده کنید. هر وبهوک شامل id، type، api_version، occurred_at، platform_page_id، platform و data است. پیام و کامنت، ورودی و خروجی را پوشش میدهند. رویداد synced علامت دریافت دوباره فهرست از API است.
بررسی اصالت وبهوک
امضا را روی بدنه خام، پیش از تبدیل JSON، بررسی کنید: HMAC-SHA256(secret, timestamp + "." + raw_body). هدر X-HighFollower-Signature با sha256= شروع میشود. زمان X-HighFollower-Timestamp را با حداکثر اختلاف پنج دقیقه کنترل کنید و id رویداد را برای جلوگیری از پردازش تکراری ذخیره کنید.
نمونه کد بررسی امضا — Python
import hashlib, hmac, json, time
def verify_webhook(raw_body, headers, secret):
timestamp = headers["X-HighFollower-Timestamp"]
if abs(time.time() - int(timestamp)) > 300:
raise ValueError("Expired webhook")
digest = hmac.new(
secret.encode(), timestamp.encode() + b"." + raw_body,
hashlib.sha256,
).hexdigest()
if not hmac.compare_digest(
"sha256=" + digest, headers["X-HighFollower-Signature"]
):
raise ValueError("Invalid signature")
return json.loads(raw_body)
# Deduplicate the verified payload["id"] in your database.
# Return 2xx after durably accepting the event.
تلاش مجدد و سابقه تحویل
پاسخ 2xx یعنی دریافت موفق. خطای شبکه، ۴۰۸، ۴۲۵، ۴۲۹ و 5xx تا هشت تلاش تکرار میشوند؛ سایر وضعیتها، از جمله redirect، ناموفقاند. تأخیر تلاشها: ۱، ۵، ۱۵، ۶۰، ۱۸۰، ۳۶۰ و ۷۲۰ دقیقه بهعلاوه تأخیر صف. شناسه رویداد ثابت است. سابقه ۳۰ روز نگهداری میشود. تغییر آدرس یا امضا، تحویلهای در انتظار قبلی را لغو میکند.
محدودیتها و خطاها
محدودیت درخواستها
API و وبهوک در Growth با ۳ اتصال و Pro با ۱۰ اتصال فعال ارائه میشوند. دوره آزمایشی Growth هم شامل این امکانات است. هر اتصال حداکثر ۱۲۰ درخواست در دقیقه دارد. برای ارسال پاسخ، پیج باید فعال و دارای ارتباط معتبر و اعتبار باشد. در خطای ۴۲۹ مطابق Retry-After صبر کنید.
خطاهای API
خطاهای اصلی: ۴۰۱ کلید نامعتبر یا منقضی؛ ۴۰۳ دسترسی ناکافی یا پیج غیرفعال؛ ۴۰۴ رکورد خارج از پیج مجاز یا ناموجود؛ ۴۰۹ تعارض شناسه ارسال؛ ۴۲۲ ورودی نامعتبر؛ ۴۲۹ محدودیت درخواست. محدودیت پلن با error=plan_limit_reached برمیگردد.