Instagram API integratsiyasi
Socialift — Instagram API uchun Python SDK. U ikkala yo'lni qo'llaydi: Instagram Login (Facebook sahifasiz) va Facebook sahifasi orqali ulanish. OAuth va tokenni yangilash, Direct suhbatlari, rasm, Reels va karusel e'loni, izohlar, statistika hamda webhook imzosini tekshirish bitta SDK'da; appsecret_proof, qayta urinish va sahifa tokenlari avtomatik.
Yangilangan:
Instagram API nima va u nima uchun kerak?
Instagram API — Meta interfeysi bo'lib, u orqali dastur Instagram professional (Business yoki Creator) akkaunti nomidan post e'lon qiladi, izohlarni boshqaradi, Direct xabarlariga javob beradi va statistikani oladi. Shaxsiy akkauntlar qo'llab-quvvatlanmaydi. Facebook sahifasi faqat Facebook Login yo'lida kerak; Instagram Login yo'li sahifasiz ishlaydi.
Amalda kompaniyalar Instagram API'ni uch maqsadda ishlatadi: kontentni avtomatik e'lon qilish, mijoz bilan yozishmani CRM yoki qo'llab-quvvatlash tizimiga olib kirish, va reklama/leadlar bo'yicha ma'lumot yig'ish.
Integratsiyaning ikki yo'li bor. Instagram Login'da foydalanuvchi Instagram hisobi bilan kiradi, so'rovlar graph.instagram.com ga ketadi va sahifa kerak emas. Facebook Login'da esa Meta ilovasi, foydalanuvchi OAuth'i, sahifalar ro'yxati, sahifa tokeni va sahifaga bog'langan Instagram akkaunt ID'si kerak. SDK'da birinchisi Instagram(app_id, app_secret), ikkinchisi fb.pages() + Instagram.via_facebook(...).
Instagram tomonida nimalar qo'llab-quvvatlanadi
Quyidagilar SDK'da tayyor holda keladi — har biri uchun alohida Graph API bilimi talab qilinmaydi.
OAuth va tokenlar
Login havolasi, kodni tokenga almashtirish (exchange_code darhol 60 kunlik token qaytaradi), Instagram Login tokenini refresh_token bilan uzaytirish. Facebook yo'lida sahifa tokenlari fb.pages() bilan olinadi, ruxsat fb.revoke() bilan bekor qilinadi.
Direct suhbatlari
Suhbatlar ro'yxati va xabarlar. Har bir suhbatdosh uchun to'liq profil: ism, follower soni, biznesni kuzatishi.
Postlar va izohlar
Rasm, video va Reels e'loni (publish), 2–10 rasmdan karusel (publish_carousel), postlarni o'qish; izohlarga javob berish, yashirish va o'chirish. Fayl ochiq HTTPS havola orqali beriladi.
Insight va demografika
Akkaunt ko'rsatkichlari (insights, 30 kungacha oraliq), post statistikasi (media_insights) va obunachilar demografiyasi (demographics: yosh/jins, shahar, davlat). Meta ba'zi metrikalarni 100 tadan kam obunachili akkauntlarga bermaydi.
Lead Ads va reklama
Instagram reklamalaridagi lead formalar Facebook sahifasi orqali o'qiladi: fb.lead_forms, fb.leads, fb.lead. leadgen webhook'i sizning endpoint'ingizga keladi — lead'ni o'zingiz olib, leads.normalize() bilan tartiblab, CRM'ga yozasiz. Ads.boost_post Instagram postini PAUSED holatdagi reklamaga aylantiradi.
Webhooklar
X-Hub-Signature-256 imzosini tekshirish (verify_request), hodisalarni ajratish (parse_events) va takroriy yetkazish uchun dedupe kaliti (dedupe_key).
Birinchi so'rov — OAuth'dan Instagram akkauntgacha
Facebook Login yo'lida foydalanuvchi kirgach, uning sahifalari va ularga bog'langan Instagram akkauntlari bitta chaqiruvda qaytadi.
import asyncio
from socialift import Facebook
async def main(code: str):
# FACEBOOK_APP_ID, FACEBOOK_APP_SECRET, SOCIALIFT_LICENSE_KEY
async with Facebook.from_env() as fb:
token = await fb.exchange_code(code, redirect_uri="https://siz.uz/cb")
for page in await fb.pages(token.access_token):
print(page.name, "→ instagram:", page.instagram_username)
asyncio.run(main(code="...")) # ?code= from the OAuth callbackBu yerda uchta Graph API chaqiruvi (kod → token, token → sahifalar, sahifa → IG akkaunt) bitta interfeysga yig'ilgan. appsecret_proof imzosi avtomatik qo'shiladi.
Instagram Login yo'lida (sahifasiz) xuddi shu oqim Instagram.from_env() (INSTAGRAM_APP_ID, INSTAGRAM_APP_SECRET) va ig.exchange_code(...) bilan ishlaydi.
Direct suhbatlarini o'qish
Suhbatlar API'si ishtirokchi haqida faqat ID va username beradi. conversations() har bir suhbatdosh uchun User Profile API'dan ism, obunachilar soni va kuzatish holatini qo'shadi — so'rovlar parallel, bir vaqtda 8 tagacha.
import asyncio, os
from socialift import Instagram
async def main(page_token: str):
async with Instagram.via_facebook(app_secret=os.environ["FACEBOOK_APP_SECRET"]) as ig:
chats = await ig.conversations(page_token, page_id="1111", ig_user_id="2222")
for chat in chats["data"]:
c = chat["contact"]
if c:
print(c.get("name"), c.get("follower_count"), "kuzatadimi:", c.get("is_user_follow_business"))
asyncio.run(main("PAGE_TOKEN"))is_user_follow_business maydoni sotuv jamoasi uchun muhim: yozgan odam sizni kuzatadimi yoki yo'qmi — bu javob ustuvorligini belgilaydi.
Story'ni API orqali qanday joylash mumkin?
Story oddiy postdan bitta narsa bilan farq qiladi: konteynerga media_type=STORIES qo'shiladi va u xuddi shu media_publish orqali chiqadi. Caption yo'q — story'da izoh matni ko'rinmaydi. Meta talablari: rasm JPEG, 8 MB gacha, tavsiya etilgan nisbat 9:16; video MOV yoki MP4, 3–60 soniya, 100 MB gacha.
import asyncio, os
from socialift import Instagram
async def main(page_token: str):
async with Instagram.via_facebook(app_secret=os.environ["FACEBOOK_APP_SECRET"]) as ig:
story = await ig.publish_story(page_token, ig_user_id="2222",
image_url="https://cdn.siz.uz/story.jpg")
print(story["media_id"])
live = await ig.stories(page_token, ig_user_id="2222", limit=25)
print(len(live), "ta story hozir ko'rinib turibdi")
asyncio.run(main("PAGE_TOKEN"))Ruxsatlar: Instagram Login yo'lida instagram_business_content_publish, Facebook Login yo'lida instagram_content_publish va pages_read_engagement. Video story uchun konteyner tayyor bo'lguncha kutiladi — wait_timeout shu kutishni boshqaradi.
Faol story'lar ro'yxati (ig.stories) faqat Facebook Login tokeni bilan ishlaydi: Meta bu edge'ni «Instagram API with Facebook Login only» deb belgilagan, Instagram Login oqimida esa u umuman yo'q. Ro'yxat faqat oxirgi 24 soatni qamrab oladi — arxiv va «highlights» API'da mavjud emas.
Kunlik e'lon limiti story'ga ham taalluqli, chunki story xuddi shu media_publish endpointidan chiqadi. Meta hujjatining o'zi bu yerda ziddiyatli: umumiy sahifada bir son, media_publish va content_publishing_limit sahifalarida boshqasi turadi — aniq raqamni taxmin qilmang, qolgan kvotani GET /{ig-user-id}/content_publishing_limit dan so'rang.
Instagramni ulash — to'rt qadam
Instagram akkauntni tayyorlang
Akkauntni Business yoki Creator turiga o'tkazing. Facebook sahifasiga bog'lash faqat Facebook Login yo'lida shart; Instagram Login (
Instagram(app_id, app_secret)) sahifasiz ishlaydi.Facebook ilovasini yarating
Meta for Developers'da ilova oching va faqat ishlatadigan ruxsatlaringizni so'rang. Instagram Login uchun: instagram_business_basic va vazifaga qarab instagram_business_content_publish, instagram_business_manage_comments, instagram_business_manage_messages, instagram_business_manage_insights. Facebook Login uchun: pages_show_list, pages_read_engagement, instagram_basic va vazifaga qarab instagram_content_publish, instagram_manage_comments, instagram_manage_messages, instagram_manage_insights (leadlar uchun leads_retrieval). O'zingizga tegishli bo'lmagan akkauntlarga xizmat qilsangiz, Advanced Access uchun App Review va Business Verification kerak.
Socialift tokenini oling
Google yoki email bilan kiring, kabinetdagi «Tokenlar» bo'limida «Yangi token» tugmasini bosing va slk_ bilan boshlanadigan kalitni oling. Birinchi oy bepul.
SDK'ni ulang
pip install socialift, kalitni SOCIALIFT_LICENSE_KEY muhit o'zgaruvchisiga qo'ying va birinchi chaqiruvni yuboring.
Instagram, Facebook, LinkedIn, TikTok va Telegram imkoniyatlari
Barcha platformalar bitta SDK va bitta xato modeli ostida ishlaydi.
| Imkoniyat | TikTok | Telegram | |||
|---|---|---|---|---|---|
| Ulanish — OAuth, Telegram'da kod yoki bot tokeni | bor | bor | bor | bor | bor |
| Profil ma'lumotlari | bor | bor | bor | bor | bor |
| Postlar — o'qish va e'lon | bor | bor | bor | bor | bor |
| Postni o'chirish | yo'q | bor | bor | yo'q | bor |
| Story — 24 soat | bor | bor | yo'q | yo'q | bor |
| Izohlar — javob va yashirish | bor | bor | yo'q | bor | yo'q |
| Izohni o'chirish | bor | yo'q | yo'q | bor | yo'q |
| Chat va xabarlar | bor | yo'q | yo'q | yo'q | bor |
| Statistika | bor | yo'q | yo'q | bor | bor |
| Obunachilar demografiyasi | bor | yo'q | yo'q | yo'q | yo'q |
| Guruh va kanal boshqaruvi | yo'q | yo'q | yo'q | yo'q | bor |
| Reklama va targeting | bor | bor | yo'q | yo'q | yo'q |
| Lead Ads — formalar va leadlar | bor | bor | yo'q | yo'q | yo'q |
| Webhook — imzo, hodisa, dedupe | bor | bor | yo'q | bor | bor |
boryo'qJadvalni yon tomonga suring
Izohlar va cheklovlar
Socialift LinkedIn'da xabar almashish va lead formalarini qo'llab-quvvatlamaydi (LinkedIn Lead Sync API'ga kirish alohida ariza va LinkedIn tekshiruvi orqali beriladi). TikTok izohlari va kunlik metrikalari Business akkaunt talab qiladi; Telegram OAuth ishlatmaydi — telefon kodi yoki bot tokeni bilan ulanadi, webhook esa bot uchun. Story qatori aniqlik talab qiladi: Telegram'da story faqat akkaunt (MTProto) tomonida va faqat Telegram Premium akkaunti yoki yetarlicha «boost» olgan kanal uchun ishlaydi — Bot API story joylay olmaydi; LinkedIn Stories 2021-yilda butunlay olib tashlangan; TikTok Content Posting API esa faqat video va foto post beradi, story uchun unda endpoint yo'q.
Ishlab chiqarishga chiqishdan oldin
Instagram integratsiyalarida eng ko'p uchraydigan xatolar ro'yxati.
- Server so'rovlarida appsecret_proof borligini tekshiring: ilova sozlamalarida «Require App Secret» yoqilgan bo'lsa, usiz Meta so'rovni rad etadi (SDK app_secret berilganda uni o'zi qo'shadi).
- Instagram so'rovlari (Direct xabarlaridan tashqari) Business Use Case limitiga tushadi: X-Business-Use-Case-Usage sarlavhasini kuzating va RateLimitError'da backoff bilan qayta urining.
- Webhook imzosini xom (raw) tanaga qarab hisoblang — JSON qayta serializatsiya qilinsa imzo mos kelmaydi.
- Bir xil hodisa bir necha marta kelishi mumkin: Meta hodisa ID bermaydi, shuning uchun mazmundan kalit yasang (mid, leadgen_id, comment_id — SDK'da
dedupe_key) va uni unikal ustunda saqlang. - Instagram Login tokeni 60 kun amal qiladi: 24 soatdan katta va muddati o'tmagan tokenni
refresh_tokenbilan muntazam uzaytiring. Uzoq muddatli foydalanuvchi tokenidan olingan sahifa tokenining muddati yo'q, lekin u ma'lum holatlarda (masalan, ruxsat bekor qilinganda) bekor bo'ladi. - Foydalanuvchi ruxsatni bekor qilsa AuthError keladi — bu holatni CRM interfeysida ko'rsating.
Ko'p so'raladigan savollar
Instagram API'ga shaxsiy akkaunt bilan ulanish mumkinmi?
Yo'q. Instagram API faqat professional akkauntlar (Business yoki Creator) bilan ishlaydi. Facebook sahifasiga bog'lash faqat Facebook Login yo'lida kerak; Instagram Login yo'lida sahifa shart emas.
Instagram Direct xabarlarini API orqali o'qish va yuborish mumkinmi?
Ha. Instagram Login yo'lida instagram_business_basic va instagram_business_manage_messages, Facebook Login yo'lida instagram_basic, instagram_manage_messages va pages_show_list kerak. App Review faqat o'zingizga tegishli bo'lmagan akkauntlar (Advanced Access) uchun talab qilinadi. Suhbatni faqat foydalanuvchi boshlaydi; Socialift suhbatlarni suhbatdosh profili bilan qaytaradi.
Instagram API bepulmi?
Meta Graph API'dan foydalanish uchun alohida to'lov olmaydi, lekin so'rovlar soni cheklangan. Socialift litsenziya kaliti bilan ishlaydi: birinchi oy bepul va bu davrda SDK'ning barcha imkoniyatlari ochiq — e'lon qilish, Direct, statistika, reklama va Lead Ads ham. Keyin token balansdan 30 kunlik davrlarga uzaytiriladi, narx kabinetda ko'rsatiladi, imkoniyatlar esa token rejasiga bog'liq — aniq ro'yxatni kabinetdagi «Tekshirish va muhitlar» ko'rsatadi. Kabinet Playground'i rejadan qat'i nazar ishlaydi.
Instagram story'ni API orqali joylash mumkinmi?
Ha. Story konteyneri media_type=STORIES bilan yaratiladi va media_publish orqali e'lon qilinadi; SDK'da bu bitta chaqiruv — ig.publish_story(token, ig_user_id=..., image_url=...). Caption qabul qilinmaydi: story'da izoh matni ko'rinmaydi. Meta talablari — rasm JPEG 8 MB gacha, video MOV yoki MP4 3–60 soniya va 100 MB gacha, tavsiya etilgan nisbat 9:16. Story 24 soatdan keyin yo'qoladi, faol story'lar ro'yxatini (ig.stories) esa faqat Facebook Login tokeni beradi.
Instagram API'da qanday cheklovlar bor?
Asosiy cheklovlar: 24 soatlik xabar almashish oynasi, so'rovlar chastotasi bo'yicha limit, o'zingizga tegishli bo'lmagan akkauntlar uchun App Review (Advanced Access) talabi va faqat professional (Business yoki Creator) akkauntlar bilan ishlash. Bu cheklovlar Meta tomonidan qo'yilgan va hech qanday SDK ularni bekor qila olmaydi.
Socialift Meta'ning rasmiy hamkorimi?
Yo'q. Socialift — Meta'ning ochiq Graph API'si ustida ishlaydigan mustaqil integratsiya qatlami. Biz Instagram bilan integratsiya qilamiz, lekin Meta bilan rasmiy hamkorlik maqomiga ega emasmiz.
Manbalar
Bog'liq sahifalar
Instagram integratsiyasini bugun boshlang
Google yoki email bilan kiring, bir daqiqada token oling va birinchi Graph API chaqiruvini yuboring.
Bepul token olish →