Asosiy mazmunga o'tish
Socialift
Platforma

Facebook API integratsiyasi

Socialift Facebook Graph API ustida ishlaydi va sahifalar bilan bog'liq asosiy amallarni bitta Python SDK'ga jamlaydi: OAuth va sahifa tokenlari, postlar va izohlar, post statistikasi, Lead Ads formalari va leadlari, Marketing API orqali reklama va targeting hamda Meta webhook imzosini tekshirish.

Yangilangan:

Facebook Graph API nima?

Graph API — Meta platformasining asosiy interfeysi. U orqali ilova foydalanuvchi bergan ruxsat doirasida sahifalar, postlar, izohlar, reklama leadlari va statistikaga kirish oladi. Instagram API ham xuddi shu Graph API ustida qurilgan, shuning uchun Facebook integratsiyasi ko'pincha Instagram uchun ham asos bo'ladi.

Amaliyotda Facebook integratsiyasi bilan boshlash mantiqiy: foydalanuvchi bir marta OAuth'dan o'tadi, uning sahifalari va har bir sahifaga bog'langan Instagram akkaunt ro'yxati qaytadi. Shundan keyin har bir sahifaning o'z tokeni (page.access_token) o'sha sahifa va unga bog'langan Instagram akkaunt uchun ishlatiladi.

Facebook tomonida nimalar bor

01

Sahifalar va tokenlar

Foydalanuvchi sahifalari ro'yxati, sahifa tokenlari va ularga bog'langan Instagram akkauntlari.

02

Reklama va targeting

Marketing API: reklama akkauntlari, qiziqish va hudud qidiruvi, pul sarflamasdan qamrov bahosi, kampaniya, ad set va kreativlar, custom va lookalike auditoriyalar.

03

Postlar va izohlar

E'lon qilish, o'qish, o'chirish; izohlarga javob berish va yashirish.

04

Lead Ads

Lead formalari ro'yxati va to'ldirilgan leadlar mazmuni — leadgen webhooki bilan.

05

Post statistikasi

Post statistikasi post_insights orqali. Sahifa darajasidagi insight va Facebook auditoriya demografikasi SDK'da yo'q (demografika Instagram uchun: ig.demographics). Meta 2025-yilda impressions metrikalarini views (post_media_view) bilan almashtirgan.

06

Webhooklar

Izoh (feed) va leadgen hodisalari: verify_request imzoni tekshiradi, parse_events ajratadi, dedupe_key takrorni aniqlaydi. Messenger integratsiyasi yo'q.

Sahifalarni olish

OAuth callback'idan keyin bitta chaqiruv sahifalarni ham, ularga bog'langan Instagram akkauntlarini ham qaytaradi.

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

Sahifa story'si: rasm uchun ikki qadam, video uchun uch bosqich

Page story oddiy post emas va feed edge'i orqali ketmaydi. Rasm photo_stories ga, video esa video_stories ga boradi, o'qish GET /{page-id}/stories bilan. SDK ikkala oqimni ham bitta chaqiruvga yig'adi.

page_story.py
import asyncio
from socialift import Facebook

async def main(page_id: str, page_token: str):
    async with Facebook.from_env() as fb:
        photo = await fb.publish_photo_story(page_id, page_token,
                                             photo_url="https://cdn.siz.uz/story.jpg")
        print(photo["post_id"])

        video = await fb.publish_video_story(page_id, page_token,
                                             video_url="https://cdn.siz.uz/story.mp4")
        print(await fb.video_story_status(video["video_id"], page_token))
        print(len(await fb.stories(page_id, page_token, limit=25)))

asyncio.run(main("PAGE_ID", "PAGE_TOKEN"))

Rasm ikki qadamda chiqadi, chunki photo_stories edge'i havola qabul qilmaydi — faqat photo_id. Shuning uchun rasm avval POST /{page-id}/photos?published=false&url=... bilan **e'lon qilinmagan** holda yuklanadi (u lentada ko'rinmaydi va Meta serverida taxminan 24 soat turadi), keyin qaytgan photo_id story sifatida e'lon qilinadi.

Video uchun Meta o'zining resumable upload protokolini talab qiladi, ya'ni uch bosqich: upload_phase=start sessiya ochadi va video_id bilan upload_url beradi (u rupload.facebook.com ga ishora qiladi), keyin fayl yoki havola o'sha manzilga yuboriladi, so'ng upload_phase=finish story'ni e'lon qiladi. Ikkinchi qadamning javobi yuklash tugaganini bildirmaydi, shuning uchun finish dan oldin uploading_phase.status == "complete" bo'lguncha kutiladi — holatni fb.video_story_status(...) ko'rsatadi.

Ruxsatlar uchala amal uchun bir xil: pages_manage_posts, pages_read_engagement, pages_show_list. Bundan tashqari token egasida Page'ning CREATE_CONTENT vazifasi bo'lishi shart — rolsiz admin bu yerda yetarli emas.

Video talablari: .mp4, nisbat 9:16, 540x960 dan 1080x1920 gacha, 24–60 FPS, H.264 yoki H.265, ovoz AAC 48 kHz. Davomiylik bo'yicha Meta hujjatining o'zi ziddiyatli — bir joyda «3–90 soniya», boshqa joyda «60 soniyadan oshmasin» deyilgan; xavfsiz oraliq 3–60 soniya.

Facebook integratsiyasidagi tipik tuzoqlar

  • Ilova sozlamasida «Require App Secret» yoqilgan bo'lsa, appsecret_proof'siz so'rovlar rad etiladi — SDK uni har so'rovga avtomatik qo'shadi.
  • Sahifa tokeni foydalanuvchi tokenidan alohida: amallar sahifa tokeni bilan bajariladi.
  • Reklama kampaniyalari, ad set va e'lonlar PAUSED holatda yaratiladi, byudjet esa asosiy valyuta birligida beriladi — ishga tushirishni alohida tasdiqlang.
  • Standard Access'da ruxsatlar faqat ilovada roli bor odamlar (admin, developer, tester) uchun ishlaydi; boshqa foydalanuvchilar uchun Advanced Access kerak — App Review va Business Verification bilan.
  • Sahifa tokeni sahifa, admin va ilova juftligiga bog'langan: uni olgan odam parolini o'zgartirsa, ilovani o'chirsa yoki sahifadagi rolini yo'qotsa, token ishlamay qoladi.

Ko'p so'raladigan savollar

Facebook reklamasini API orqali boshqarish mumkinmi?

Ha. Meta Marketing API orqali kampaniya, ad set, e'lon va kreativlar yaratiladi, targeting uchun qiziqish va hududlar qidiriladi, qamrov esa pul sarflamasdan baholanadi. Mijozlar email va telefonlaridan auditoriya yaratishda ular SDK ishlayotgan serveringizda SHA-256 bilan xeshlanadi.

Facebook va Instagram uchun alohida integratsiya kerakmi?

Shart emas. Facebook Login orqali bitta OAuth oqimi sahifalarni ham, ularga bog'langan Instagram professional akkauntlarini ham beradi. Sahifasiz Instagram akkaunt uchun SDK'da Instagram Login bor: Instagram(app_id, app_secret). Har ikkala holatda akkaunt Business yoki Creator bo'lishi kerak.

Facebook API'dan foydalanish uchun App Review shartmi?

Ilova faqat unda roli bor odamlar (admin, developer, tester) bilan ishlasa — yo'q, Standard Access yetadi. Boshqa foydalanuvchilarning sahifalari bilan ishlash uchun har bir ruxsatga Advanced Access kerak: App Review va Business Verification'dan o'tiladi.

Facebook sahifasiga API orqali story joylash mumkinmi?

Ha, Page Stories API orqali. Rasm ikki qadamda chiqadi: avval published=false bilan e'lon qilinmagan rasm yuklanadi, keyin uning photo_id si photo_stories edge'iga beriladi — bu edge havola qabul qilmaydi. Video esa uch bosqichli resumable yuklash talab qiladi (upload_phase=start → faylni upload_url ga yuborish → upload_phase=finish). Kerakli ruxsatlar: pages_manage_posts, pages_read_engagement, pages_show_list, ustiga token egasida Page'ning CREATE_CONTENT vazifasi. SDK'da bu fb.publish_photo_story(...) va fb.publish_video_story(...).

Facebook Messenger xabarlarini Socialift orqali olsa bo'ladimi?

Yo'q, Socialift'da Facebook Messenger integratsiyasi yo'q: SDK Messenger suhbatlarini o'qimaydi va ularga javob yubormaydi. Meta xabarlaridan Instagram Direct qo'llab-quvvatlanadi — ig.conversations va ig.send_message orqali.

Manbalar

  1. Meta — eskirgan sahifa metrikalari
  2. Meta — Page Insights API yangilanishlari (2025)
  3. Meta — Securing Graph API requests (appsecret_proof)
  4. Meta — Access levels (Standard / Advanced)
  5. Meta — Page Stories API
  6. Meta — Instagram Platform overview
  7. Meta — Access tokens

Bog'liq sahifalar

Facebook sahifalarini ulang

Token oling va sahifalar ro'yxatini bugun torting.

Bepul token olish →