المطورون

مصادقة SpeakNotes API

يقبل الـ API ثلاثة أنواع من الاعتمادات: مفتاح API، أو رمز وصول OAuth، أو رمز Firebase ID من جلسة مسجلة الدخول.

مفاتيح API

أرسل المفتاح كرمز حامل (bearer token) في كل طلب. يمكن لأي حساب مسجل الدخول إنشاء مفتاح، وسيعمل مباشرة.

curl https://api.speaknotes.io/v1/notes \
  -H "Authorization: Bearer sn_live_YOUR_API_KEY"

تبدأ المفاتيح الحية بـ sn_live_ وتعمل على مكتبتك الحقيقية. تبدأ مفاتيح sandbox بـ sn_test_ وتعمل مقابل مخرجات ثابتة. المفاتيح الصادرة قبل وجود النطاقات لا تزال تعمل وتتمتع بوصول كامل.

النطاقات (Scopes)

كل مفتاح وكل رمز OAuth يحمل نطاقات. القراءة لا تعني أبداً الكتابة، لذا فإن مفتاحاً بنطاق notes:read لا يمكنه حذف أي شيء. الطلب الذي يفتقد إلى نطاق سيحصل على خطأ 403 يوضح ما هو مفقود.

  • notes:readRead notes, transcripts, and summaries.
  • notes:writeCreate, update, and delete notes.
  • folders:readRead folders.
  • folders:writeCreate, update, and delete folders.
  • transcriptions:writeTranscribe audio and video.
  • summaries:writeGenerate summaries from audio, text, and YouTube URLs.
  • usage:readRead credit balance and usage history.

حدود معدل الاستخدام

يتم احتساب الحدود لكل اعتماد، وليس لكل عنوان IP، لذا لا يمكن لتكامل واحد أن يعطل الآخر. تحمل كل استجابة X-RateLimit-Limit و X-RateLimit-Remaining و X-RateLimit-Reset، ويحمل رمز 429 ترويسة Retry-After.

120
القراءات في الدقيقة
30
الكتابات في الدقيقة
10
المعالجة في الدقيقة
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="SpeakNotes API", error="invalid_token",
  resource_metadata="https://api.speaknotes.io/.well-known/oauth-protected-resource"

{
  "error": {
    "type": "authentication_error",
    "code": "invalid_token",
    "message": "The API key is invalid, expired, or revoked.",
    "doc_url": "https://speaknotes.io/developers/errors#invalid_token"
  }
}

OAuth

هل تبني شيئاً يسجل مستخدمو SpeakNotes الدخول إليه؟ استخدم OAuth بدلاً من مطالبتهم بلصق مفتاح. /developers/oauth

التدوير والإبطال

يظهر المفتاح مرة واحدة فقط عند الإنشاء، ويتم تخزينه كـ hash فقط. إبطال المفتاح يسري مفعوله فوراً. يمكن أيضاً تحديد تاريخ انتهاء صلاحية للمفاتيح عند إنشائها.