Asosiy mazmunga o'tish
Socialift
Platforma

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.

01

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.

02

Direct suhbatlari

Suhbatlar ro'yxati va xabarlar. Har bir suhbatdosh uchun to'liq profil: ism, follower soni, biznesni kuzatishi.

03

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.

04

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.

05

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.

06

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.

quickstart.py
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 callback

Bu 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.

conversations.py
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.

story.py
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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Instagram, Facebook, LinkedIn, TikTok va Telegram imkoniyatlari — Platformalar bo'yicha imkoniyatlar jadvali
ImkoniyatInstagramFacebookLinkedInTikTokTelegram
Ulanish — OAuth, Telegram'da kod yoki bot tokeniborborborborbor
Profil ma'lumotlariborborborborbor
Postlar — o'qish va e'lonborborborborbor
Postni o'chirishyo'qborboryo'qbor
Story — 24 soatborboryo'qyo'qbor
Izohlar — javob va yashirishborboryo'qboryo'q
Izohni o'chirishboryo'qyo'qboryo'q
Chat va xabarlarboryo'qyo'qyo'qbor
Statistikaboryo'qyo'qborbor
Obunachilar demografiyasiboryo'qyo'qyo'qyo'q
Guruh va kanal boshqaruviyo'qyo'qyo'qyo'qbor
Reklama va targetingborboryo'qyo'qyo'q
Lead Ads — formalar va leadlarborboryo'qyo'qyo'q
Webhook — imzo, hodisa, dedupeborboryo'qborbor

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_token bilan 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

  1. Meta: Overview of the Instagram API
  2. Meta: Instagram API with Instagram Login
  3. Meta: Conversations API
  4. Meta: Refresh a long-lived Instagram token
  5. Meta: Instagram insights
  6. Meta: Content publishing (story konteyneri)
  7. Meta: IG User Stories edge
  8. Meta: Graph API rate limiting

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 →