POST/oauth/token
إصدار رمز OAuth 2.0
oauth_token
نقطة نهاية إصدار الرموز في OAuth 2.0 (RFC 6749، القسم 3.2). الحقل grant_type: القيمة authorization_code تستبدل رمزًا لمرة واحدة بزوج من الرموز وتتطلب code_verifier (PKCE S256)؛ والقيمة refresh_token تصدر زوجًا جديدًا مقابل رمز التحديث وتُبطل رمز التحديث السابق (التدوير)، وإعادة استخدام رمز مُبطَل تُبطل السلسلة كلها؛ والقيمة client_credentials تصدر رمزًا نيابة عن المؤسسة، لتطبيق confidential فقط، دون رمز تحديث. العميل confidential يُصادَق بالترويسة Authorization: Basic أو بالحقلين client_id وclient_secret؛ والعميل العام يرسل client_id فقط. رمز الوصول صالح لمدة ساعة واحدة، ورمز التحديث لمدة 90 يومًا. تتبع الاستجابات والأخطاء RFC 6749، القسم 5، مع Cache-Control: no-store. أُضيف في الإصدار 1.62.0.
المصادقة
لا تلزم بيانات اعتماد.
نص الطلب
application/x-www-form-urlencoded
grant_typestringمطلوبالقيم المسموح بها:
authorization_coderefresh_tokenclient_credentialscodestringرمز التخويل (
authorization_code).redirect_uristringعنوان URI لإعادة التوجيه نفسه الذي في طلب التخويل (
authorization_code).code_verifierstringقيمة PKCE الأصلية، من 43 إلى 128 حرفًا (
authorization_code).refresh_tokenstringرمز التحديث (
refresh_token).scopestringنطاقات صلاحيات مفصولة بمسافات، للتضييق فقط (
refresh_token،client_credentials).client_idstringمعرّف التطبيق، حين لا يُمرَّر السر في الترويسة
Authorization: Basic.client_secretstringسر العميل لتطبيق
confidential، حين لا يُمرَّر في الترويسةAuthorization: Basic.
الاستجابات
200صدرت الرموز.
ترويسات الاستجابة
RateLimit-Policyالحدود السارية، بصيغة مسودة IETF
draft-ietf-httpapi-ratelimit-headers: عناصر مفصولة بفواصل"<name>";q=<quota>;w=<window in seconds>. العنصرkeyهو معدل طلبات مفتاح API (الحصة هي هامش الذروة، والنافذة الزمنية هي مدة إعادة ملئه بالكامل؛ وللجلسة يكونuser، ودون بيانات اعتمادip)؛ وminuteوdayوmonthهي حصص المؤسسة للدقيقة واليوم والشهر التقويمية بتوقيت UTC.RateLimitالمتبقي من كل حد في الترويسة
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-Limitحد العنصر الأشد صرامة في الترويسة
RateLimit-Policy(العنصر الذي بقي فيه أقل عدد من الطلبات).X-RateLimit-Remainingعدد الطلبات المتبقية ضمن الحد الأشد صرامة.
X-RateLimit-Resetعدد الثواني حتى إعادة ضبط الحد الأشد صرامة.
application/json
access_tokenstringمطلوبرمز الوصول (
kbat_…) للترويسةAuthorization: Bearer.token_typestringمطلوبالقيم المسموح بها:
Bearerexpires_inintegerمطلوبمدة صلاحية رمز الوصول بالثواني.
refresh_tokenstringرمز التحديث (
kbrt_…)؛ يغيب مع client credentials.scopestringمطلوبنطاقات صلاحيات الرمز، مفصولة بمسافات.
400خطأ وفق تعريف RFC 6749، القسم 5.2.
ترويسات الاستجابة
RateLimit-Policyالحدود السارية، بصيغة مسودة IETF
draft-ietf-httpapi-ratelimit-headers: عناصر مفصولة بفواصل"<name>";q=<quota>;w=<window in seconds>. العنصرkeyهو معدل طلبات مفتاح API (الحصة هي هامش الذروة، والنافذة الزمنية هي مدة إعادة ملئه بالكامل؛ وللجلسة يكونuser، ودون بيانات اعتمادip)؛ وminuteوdayوmonthهي حصص المؤسسة للدقيقة واليوم والشهر التقويمية بتوقيت UTC.RateLimitالمتبقي من كل حد في الترويسة
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-Limitحد العنصر الأشد صرامة في الترويسة
RateLimit-Policy(العنصر الذي بقي فيه أقل عدد من الطلبات).X-RateLimit-Remainingعدد الطلبات المتبقية ضمن الحد الأشد صرامة.
X-RateLimit-Resetعدد الثواني حتى إعادة ضبط الحد الأشد صرامة.
application/json
401بيانات اعتماد العميل غير صالحة (`invalid_client`).
ترويسات الاستجابة
RateLimit-Policyالحدود السارية، بصيغة مسودة IETF
draft-ietf-httpapi-ratelimit-headers: عناصر مفصولة بفواصل"<name>";q=<quota>;w=<window in seconds>. العنصرkeyهو معدل طلبات مفتاح API (الحصة هي هامش الذروة، والنافذة الزمنية هي مدة إعادة ملئه بالكامل؛ وللجلسة يكونuser، ودون بيانات اعتمادip)؛ وminuteوdayوmonthهي حصص المؤسسة للدقيقة واليوم والشهر التقويمية بتوقيت UTC.RateLimitالمتبقي من كل حد في الترويسة
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-Limitحد العنصر الأشد صرامة في الترويسة
RateLimit-Policy(العنصر الذي بقي فيه أقل عدد من الطلبات).X-RateLimit-Remainingعدد الطلبات المتبقية ضمن الحد الأشد صرامة.
X-RateLimit-Resetعدد الثواني حتى إعادة ضبط الحد الأشد صرامة.
application/json
إعادة المحاولة بأمان
أرسل الترويسة Idempotency-Key (قيمة UUID مثلًا) مع كل طلب POST وPATCH. إعادة المحاولة بالمفتاح نفسه خلال 24 ساعة تعيد الاستجابة المحفوظة بدل تنفيذ الطلب مرة أخرى.
حدود المعدل
تحمل الاستجابات الترويستين RateLimit وRateLimit-Policy، والترويسات الأقدم X-RateLimit-Limit وX-RateLimit-Remaining وX-RateLimit-Reset. وفي الاستجابة 429 الترويسة Retry-After بالثواني: انتظر ثم أعد المحاولة.