Asosiy mazmunga o'tish
Socialift
Hujjatlar bo'limlari
Sozlash

LinkedIn API uchun developer app sozlash

LinkedIn integratsiyasi LinkedIn Developer Portal'dagi app'dan boshlanadi, app LinkedIn Page'ga bog'lanadi. Products bo'limida “Sign In with LinkedIn using OpenID Connect” (openid, profile, email) va “Share on LinkedIn” (w_member_social) ni qo'shasiz, Auth bo'limida redirect URL yozasiz va Client ID hamda Client Secret'ni olasiz. Bu ochiq ruxsatlar maxsus tasdiqsiz beriladi.

Yangilangan:

LinkedIn API uchun nima kerak?

LinkedIn Page'ga bog'langan developer app, ikkita self-serve mahsulot va bitta redirect URL. Shu bilan a'zoni login qildirish (OpenID Connect) va uning nomidan post e'lon qilish mumkin. Ochiq ruxsatlardan tashqari hamma narsa — masalan, reklama API — LinkedIn'ning alohida tasdig'ini talab qiladi.

LinkedIn ochiq ruxsatlar deb faqat openid, profile, email va w_member_social ni beradi. Boshqa ruxsatlar va partner dasturlariga ariza topshiriladi.

LinkedIn'ning ochiq API'si shaxsiy xabarlar va Lead Gen Forms uchun kirish bermaydi — Socialift'da ham bu imkoniyatlar yo'q.

LinkedIn Developer Portal'da app yaratish

  1. App yarating

    developer.linkedin.com → My apps → Create app. App name, LinkedIn Page (kompaniya sahifasi nomi yoki URL'i), Privacy policy URL va logo kiriting, shartlarga rozilik belgisini qo'yib app'ni yarating. LinkedIn Page bo'lmasa — avval uni yarating.

  2. Page bog'lanishini tasdiqlang

    Settings tabida Verify → Generate URL → havolani nusxalab Page super admin'iga yuboring. Super admin havola orqali 30 kun ichida tasdiqlaydi yoki rad etadi. Ayrim mahsulot va imkoniyatlar uchun bu tasdiq talab qilinadi.

  3. Mahsulotlarni qo'shing

    Products tabida “Sign In with LinkedIn using OpenID Connect” (openid, profile, email) va “Share on LinkedIn” (w_member_social) ni qo'shing. Ikkalasi ham self-serve — barcha dasturchilarga ochiq.

  4. Redirect URL qo'shing

    Auth tabida Authorized redirect URLs ro'yxatiga callback manzilini HTTPS bilan qo'shing. Qoidalar: URL absolyut bo'lishi kerak, # bo'lmasligi kerak, query parametrlar e'tiborga olinmaydi, so'rovdagi redirect_uri ro'yxatdagisiga mos kelishi shart.

  5. Client ID va Client Secret'ni ko'chiring

    Ikkalasi Auth tabida. Client Secret'ni hech kimga bermang va URL yoki query parametrda yubormang.

  6. Scope'larni tekshiring

    Auth tabi app'ga hozir berilgan scope'larni ko'rsatadi. So'rovda app'ga biriktirilmagan scope bo'lsa, LinkedIn “Invalid scope” xatosini qaytaradi.

LinkedIn app'ni Socialift'ga ulash

  1. Kalitlar → LinkedIn app

    Kabinetda “Kalitlar” bo'limida “LinkedIn app” kartasini oching. “Konsolga ko'chiring” blokidagi Redirect URI'ni Auth → Authorized redirect URLs'ga qo'ying. LinkedIn uchun webhook manzili yo'q — faqat redirect URI.

  2. Client ID va Client secret'ni kiriting

    “Scope'lar” ixtiyoriy: bo'sh qoldirilsa openid profile email w_member_social ishlatiladi. Qo'shimcha scope yozsangiz, u app'ingizga LinkedIn tomonidan berilgan bo'lishi kerak.

  3. “Saqlash va tekshirish” ni bosing

    Socialift LinkedIn token endpoint'iga client credentials so'rovi yuboradi. Noto'g'ri ID yoki secret — kalit rad etiladi. “App token berilmaydi” javobi esa kalit to'g'ri ekanini bildiradi: oddiy a'zo login'i uchun bu normal holat.

  4. Akkauntni ulang

    “Ulanishlar” bo'limida LinkedIn kartasidagi “Ulash” ni bosing. Access token 60 kun amal qiladi. LinkedIn dasturiy refresh token'ni faqat cheklangan partnerlarga beradi — refresh token bo'lmasa, muddat tugashidan oldin “Ulash” orqali qayta kiring.

Qaysi scope nima uchun kerak?

Qaysi scope nima uchun kerak? — Platformalar bo'yicha imkoniyatlar jadvali
ScopeMahsulotNimaga ruxsat beradiSDK'da
openidSign In with LinkedIn using OpenID ConnectOIDC orqali autentifikatsiya, ID tokenli.me
profileSign In with LinkedIn using OpenID ConnectIsm va profil rasmi (lite profile)li.me
emailSign In with LinkedIn using OpenID ConnectAsosiy email manzilili.me
w_member_socialShare on LinkedInA'zo nomidan post, izoh va likeli.create_post, li.delete_post
r_member_socialOchiq ruxsat emas — LinkedIn tasdig'i kerakSDK'da postlarni o'qish uchun talab qilinadili.posts
Izohlar va cheklovlar

Bir nechta scope so'ralsa, a'zo hammasiga birga rozilik beradi — alohida tanlay olmaydi. Avval berilganidan boshqa scope to'plami so'ralsa, oldingi barcha access token'lar bekor bo'ladi.

Python SDK'da LinkedIn kalitlari

LinkedIn.from_env() LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET va LINKEDIN_API_VERSION ni o'qiydi.

linkedin_login.py
import asyncio
import secrets

from socialift import LinkedIn

REDIRECT_URI = "https://siz.uz/auth/linkedin/callback"  # Authorized redirect URLs bilan bir xil


async def main() -> None:
    # LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET, SOCIALIFT_LICENSE_KEY
    async with LinkedIn.from_env() as li:
        state = secrets.token_urlsafe(32)
        print(li.login_url(redirect_uri=REDIRECT_URI, state=state))

        code = input("code: ")  # kod 30 daqiqa amal qiladi
        bundle = await li.exchange_code(code, redirect_uri=REDIRECT_URI)
        me = await li.me(bundle.access_token)
        await li.create_post(bundle.access_token, author=li.person_urn(me.id), text="Salom, LinkedIn!")


asyncio.run(main())

Aniq ko'rinishda: LinkedIn(client_id="...", client_secret="..."). SDK scope'larni probel bilan birlashtiradi, LinkedIn shuni kutadi.

Versiyalangan /rest/* so'rovlarida LinkedIn-Version sarlavhasi yuboriladi. LinkedIn har bir versiyani kamida bir yil qo'llab-quvvatlaydi; eskirgan versiya xatosi kelsa api_version= yoki LINKEDIN_API_VERSION bilan amaldagi versiyani bering.

Ko'p uchraydigan xatolar

  • Redirect URL Auth tabidagidan farq qiladi yoki http:// bilan yozilgan — “Redirect_uri doesn't match”.
  • Products tabida kerakli mahsulot qo'shilmagan — “Invalid scope”.
  • Scope'lar vergul bilan birlashtirilgan — LinkedIn probel bilan ajratilgan ro'yxat kutadi.
  • Authorization code darhol almashtirilmagan — u 30 daqiqadan keyin eskiradi.
  • Scope to'plami o'zgartirilgan va eski token'lar ishlashi kutilgan — ular bekor bo'ladi.
  • 60 kunlik token muddati kuzatilmagan va refresh token yo'qligi hisobga olinmagan.
  • Client Secret frontend yoki URL parametrida yuborilgan.

Ko'p so'raladigan savollar

LinkedIn Client ID va Client Secret qayerda?

LinkedIn Developer Portal → My apps → app'ingiz → Auth tabida. Shu tabda Authorized redirect URLs ro'yxati va app'ga berilgan scope'lar ham ko'rinadi.

LinkedIn app yaratish uchun kompaniya sahifasi shartmi?

Ha, app yaratish formasida LinkedIn Page ko'rsatiladi. Sahifa bo'lmasa, avval uni yarating. Ayrim mahsulotlar uchun Page super admin app'ni Settings → Verify orqali yuborilgan havola bilan tasdiqlashi kerak.

w_member_social uchun App Review kerakmi?

Yo'q. w_member_social “Share on LinkedIn” mahsuloti orqali beriladi va u barcha dasturchilarga ochiq self-serve ruxsat. Reklama kabi boshqa ruxsatlar esa ariza va LinkedIn tasdig'ini talab qiladi.

LinkedIn access token qancha amal qiladi?

Hozir barcha access token'lar 60 kunlik beriladi. Dasturiy refresh token faqat cheklangan partnerlarga yoqiladi; qolganlar uchun a'zo qayta avtorizatsiyadan o'tadi — LinkedIn'da login bo'lsa va token tugamagan bo'lsa, rozilik oynasi o'tkazib yuboriladi.

Socialift orqali LinkedIn'da shaxsiy xabar yuborsa bo'ladimi?

Yo'q. Standart sozlamada Socialift a'zo profili va uning nomidan post bilan ishlaydi (w_member_social). LinkedIn ochiq API'si shaxsiy xabarlar va Lead Gen Forms uchun kirish bermaydi, shuning uchun Socialift'da bular yo'q.

Manbalar

  1. LinkedIn: Getting Access to LinkedIn APIs
  2. LinkedIn: 3-Legged OAuth Flow
  3. LinkedIn: Sign In with LinkedIn using OpenID Connect
  4. LinkedIn: API versioning
  5. LinkedIn Help: Create a new app for a LinkedIn Page
  6. LinkedIn Help: App verification request

Bog'liq sahifalar