İzin oluşturun

POST /v1/permissions · izin apis:write

Bir API'ye izin (OAuth kapsamı) ekler; isteğe bağlı olarak onay ekranında gösterilen metinleri de ekleyebilirsiniz. Idempotency-Key desteklenir.

İstek

Alan Tür Zorunlu Açıklama
api_id string evet API (api_…).
value string evet Kapsam değeri, resource:action (^[a-z0-9_.-]{1,64}:[a-z0-9_.*-]{1,64}$). API içinde benzersiz olmalı ve sonradan değiştirilemez. idp_ öneki ayrılmıştır.
display_name string | null hayır Onay ekranında kapsam değeri yerine gösterilen kısa ad. En fazla 128 karakter.
description string | null hayır Onay ekranında adın altında gösterilen ayrıntı satırı. En fazla 1024 karakter.
consent_text_i18n object | null hayır Dil etiketi → onay ekranı metni, örneğin {"en": "Read your orders"}. En fazla 30 dil, her metin 1-1024 karakter, toplam 16 KiB.
sensitivity string hayır normal (varsayılan) veya sensitive.

Onay ekranı metinleri

Barındırılan onay ekranı, istenen her kapsamı şöyle gösterir: sayfa dili için consent_text_i18n girdisi (tam etiket, yoksa birincil alt etiketi), yoksa display_name, yoksa kapsam value değeri; description ayrıntı satırı olarak gösterilir. Üçü de düz metindir. Denetim karakterleri (satır sonları ve sekmeler dahil), satır ve paragraf ayırıcıları ile çift yönlü gömme, geçersiz kılma ve izole etme karakterleri (U+202A-U+202E, U+2066-U+2069) 422 ile reddedilir. Baştaki ve sondaki boşluklar kırpılır; kırpıldıktan sonra boş kalan metin null olarak saklanır. HTML yorumlanmaz: onay ekranı bunu kaçış karakterleriyle gösterir.

Yanıt

201 Created

{
  "id": "perm_01h455vb4pex5vsknk084sn02s",
  "api_id": "api_01h455vb4pex5vsknk084sn02q",
  "value": "read:orders",
  "display_name": "Read orders",
  "description": "See your past orders and their status",
  "consent_text_i18n": {
    "en": "Read your orders",
    "tr": "Siparişlerinizi okuyun"
  },
  "sensitivity": "normal"
}

Hatalar

HTTP code Ne zaman
400 unknown_field Gövde bilinmeyen bir alan içeriyor.
403 insufficient_permissions Kimlik bilgisinde apis:write yok.
403 quota_exceeded API'nin zaten 1.000 izni var.
404 not_found Bu ortamda böyle bir API yok.
409 conflict Değer bu API'de zaten var ya da API sistem API'si.
422 validation_failed Bir alan eksik ya da geçersiz, ya da bir metin düz metin değil (errors[].pointer alanı belirtir, örneğin /consent_text_i18n).

Örnek

curl -X POST https://api.eu.keenauth.com/v1/permissions \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 6f1d2c1e-perm-create" \
  -d '{"api_id":"api_01h455vb4pex5vsknk084sn02q","value":"read:orders","display_name":"Read orders","consent_text_i18n":{"en":"Read your orders"}}'

CLI ile dil eşlemesini --data ile iletin:

echo '{"consent_text_i18n":{"en":"Read your orders"}}' | keenauth permissions create \
  --api-id api_01h455vb4pex5vsknk084sn02q --value read:orders --display-name "Read orders" --data -