Public app və OAuth: başqa hesabların app-ı qoşması
Son yeniləmə: 11 noyabr 2026 · 8 dəq oxunur
OAuth başqa şirkətin administratorunun öz Clomni hesabını sizin app-a parol vermədən qoşduğu standart qaydadır. Administrator Clomni-nin razılıq ekranında app-ın nə edəcəyini oxuyur və «İcazə ver» basır, app həmin workspace üçün ayrıca token alır. Clomni OAuth 2.0 authorization code axınını PKCE (S256) ilə işlədir. Public app-da şəxsi token və client_credentials yoxdur.
Addımlar
-
1
Hazırlıq
- developer.clomni.ai-da «Yeni app» açın, növ olaraq «Public app» seçin. Növ sonra dəyişmir.
- Redirect URI-ləri yazın (ən çox 10): administrator razılıq verəndən sonra Clomni-nin onu qaytardığı ünvan. Ünvan hərfi-hərfinə uyğun gəlməlidir: sxem, host, port, yol, query. Ulduz,
#və istifadəçi adı olmaz. - Yalnız
httpsqəbul olunur.http://localhost,http://127.0.0.1,http://[::1]yerli sınaq üçündür, istənilən portla işləyir, amma yalnız app Live olana qədər. - Scope-ları review-a göndərin. Public app-da hər scope review-dan keçir.
- Serveriniz varsa client secret yaradın. Secret yoxdursa app public client sayılır və yalnız
client_idvə PKCE ilə işləyir (brauzer və mobil tətbiq üçün). Secret yaradılandan sonra token sorğusunda həmişə tələb olunur.
-
2
Administratoru authorize ünvanına göndərin
App
code_verifier(43-128 simvol) yaradır, ondancode_challenge = BASE64URL(SHA256(code_verifier))hesablayır, təsadüfistateyaradır və ikisini sessiyada saxlayır. Sonra administratoru bu ünvana göndərir:https://my.clomni.co/oauth/developer/authorize?client_id=capp_xxx&redirect_uri=https%3A%2F%2Fapp.example.com%2Fclomni%2Fcallback&response_type=code&scope=contacts:read%20conversations:read&state=STATE&code_challenge=CODE_CHALLENGE&code_challenge_method=S256
Hamısı məcburidir:
client_id,redirect_uri,response_type=code,scope(app-ın istədiyi və rədd edilməmiş scope-lar),state(ən çox 500 simvol),code_challenge(43 simvol),code_challenge_method=S256.client_idtanınmırsa və yaredirect_uriuyğun deyilsə, Clomni yönləndirmir və səhvi öz səhifəsində göstərir. Qalan səhvlər redirect URI-yə?error=...&state=...kimi qayıdır:invalid_request,invalid_scope,unsupported_response_type,access_denied(administrator imtina etdi). -
3
Administrator razılıq verir
Razılıq ekranında «{app} Clomni-yə qoşulmaq istəyir», «Developer: {şirkət}», «Workspace» seçimi və «App bunları edə biləcək» siyahısı görünür. Administrator «İcazə ver» və ya «İmtina» basır. Yalnız workspace administratoru app qoşa bilər. Sorğu 10 dəqiqə işləyir və bir dəfə istifadə olunur. Paneldə nə görünür: «Paneldə App-lar» məqaləsi.
-
4
Kodu tokenə dəyişin
Clomni qaytarır:
https://app.example.com/clomni/callback?code=...&state=.... Əvvəlstate-i sessiyadakı ilə müqayisə edin. Kod 60 saniyə və bir dəfə işləyir, ikinci dəfə gəlsə birincidən verilmiş tokenlər də ləğv olunur.curl -X POST https://api.clomni.ai/v1/oauth/token \ -u "$CLOMNI_CLIENT_ID:$CLOMNI_CLIENT_SECRET" \ -d grant_type=authorization_code \ -d code="$CODE" \ -d redirect_uri="https://app.example.com/clomni/callback" \ -d code_verifier="$CODE_VERIFIER"
Public client
-uəvəzinə gövdədəclient_idgöndərir. Cavabdaaccess_token(clomni_at_, 1 saat),refresh_token(clomni_rt_, 90 gün),scope,workspace_idvəinstallation_idolur. Tokenləriinstallation_idüzrə saxlayın: bir workspace bir quraşdırmadır. -
5
Tokeni yeniləyin
grant_type=refresh_tokenvərefresh_token=...ilə eyni ünvana sorğu göndərin. Hər yeniləmədə yeni refresh token gəlir: köhnəsini silin. Köhnə refresh token ikinci dəfə gəlsə, Clomni bunu oğurluq sayır və bütün token ailəsini ləğv edir, administrator app-ı yenidən qoşmalı olur. Bir quraşdırmanı eyni anda iki prosesdən yeniləməyin.scopegöndərsəniz, token daralır, genişlənmir. -
6
İşləyən scope-lar və ləğv
Hər sorğuda işləyən scope-lar: administratorun razılıq verdiyi scope-lar ilə app-ın hazırda təsdiqlənmiş scope-larının kəsişməsi. Yeni scope təsdiqlənəndə mövcud quraşdırmalara özü əlavə olunmur: administrator app-ı yenidən qoşmalıdır. Administrator app-ı Parametrlər › İş sahəsi parametrləri › App-lar › «Bağlı app-lar» bölməsində ləğv edəndə bütün tokenlər dərhal dayanır və app-ın webhook-una
app.uninstalledgedir. Qoşan şəxs artıq administrator deyilsə, tokenlər 403installation_owner_not_adminqaytarır. Tokeni özünüzPOST /v1/oauth/revokeilə ləğv edə bilərsiniz. -
7
Review-dan əvvəl sınaq və kataloq
Review-dan əvvəl app-ı onun öz workspace-ində, sahibi kimi qoşub test kanalında sınaya bilərsiniz: təsdiqlənməmiş scope-lar yalnız orada işləyir («Test kanalı» məqaləsi). Listinq təsdiqlənəndən sonra app paneldəki kataloqda görünür, «Qoş» düyməsi app-ın quraşdırma ünvanını (
install_url) açır və axını app-ınız başladır. -
8
Token səhvləri
- 400
invalid_grant: kod və ya refresh token səhvdir, vaxtı bitib, artıq işlədilib,redirect_urivə yacode_verifieruyğun deyil, quraşdırma ləğv olunub. - 401
invalid_client:client_idvə yaclient_secretsəhvdir, ya da secret-i olan app onu göndərməyib. - 400
unauthorized_client: app public deyil, dayandırılıb və ya arxivlənib. - 400
invalid_scope,unsupported_grant_type.
- 400