From 46539fd63d735218eb1aac6071a7c0ee5ddfadff Mon Sep 17 00:00:00 2001 From: HynLcc Date: Sat, 26 Sep 2026 15:53:59 +0800 Subject: [PATCH] docs: device sessions, auto-generated share passwords and OAuth notifications Co-Authored-By: Claude Opus 5.5 --- ar/api-doc/oauth.mdx | 38 +++++++++++++++++++++++++++++----- ar/basic/admin-panel/users.mdx | 4 ++++ ar/basic/ai/ai-chat.mdx | 2 +- ar/basic/ai/routine.mdx | 2 +- ar/basic/base.mdx | 2 +- ar/basic/security.mdx | 18 +++++++++++++++- ar/basic/view/toolbar.mdx | 2 +- de/api-doc/oauth.mdx | 38 +++++++++++++++++++++++++++++----- de/basic/admin-panel/users.mdx | 4 ++++ de/basic/ai/ai-chat.mdx | 2 +- de/basic/ai/routine.mdx | 2 +- de/basic/base.mdx | 2 +- de/basic/security.mdx | 18 +++++++++++++++- de/basic/view/toolbar.mdx | 2 +- en/api-doc/oauth.mdx | 38 +++++++++++++++++++++++++++++----- en/basic/admin-panel/users.mdx | 4 ++++ en/basic/ai/ai-chat.mdx | 2 +- en/basic/ai/routine.mdx | 2 +- en/basic/base.mdx | 2 +- en/basic/security.mdx | 18 +++++++++++++++- en/basic/view/toolbar.mdx | 2 +- es/api-doc/oauth.mdx | 38 +++++++++++++++++++++++++++++----- es/basic/admin-panel/users.mdx | 4 ++++ es/basic/ai/ai-chat.mdx | 2 +- es/basic/ai/routine.mdx | 2 +- es/basic/base.mdx | 2 +- es/basic/security.mdx | 18 +++++++++++++++- es/basic/view/toolbar.mdx | 2 +- fr/api-doc/oauth.mdx | 38 +++++++++++++++++++++++++++++----- fr/basic/admin-panel/users.mdx | 4 ++++ fr/basic/ai/ai-chat.mdx | 2 +- fr/basic/ai/routine.mdx | 2 +- fr/basic/base.mdx | 2 +- fr/basic/security.mdx | 18 +++++++++++++++- fr/basic/view/toolbar.mdx | 2 +- it/api-doc/oauth.mdx | 38 +++++++++++++++++++++++++++++----- it/basic/admin-panel/users.mdx | 4 ++++ it/basic/ai/ai-chat.mdx | 2 +- it/basic/ai/routine.mdx | 2 +- it/basic/base.mdx | 2 +- it/basic/security.mdx | 18 +++++++++++++++- it/basic/view/toolbar.mdx | 2 +- ja/api-doc/oauth.mdx | 38 +++++++++++++++++++++++++++++----- ja/basic/admin-panel/users.mdx | 4 ++++ ja/basic/ai/ai-chat.mdx | 2 +- ja/basic/ai/routine.mdx | 2 +- ja/basic/base.mdx | 2 +- ja/basic/security.mdx | 18 +++++++++++++++- ja/basic/view/toolbar.mdx | 2 +- ru/api-doc/oauth.mdx | 38 +++++++++++++++++++++++++++++----- ru/basic/admin-panel/users.mdx | 4 ++++ ru/basic/ai/ai-chat.mdx | 2 +- ru/basic/ai/routine.mdx | 2 +- ru/basic/base.mdx | 2 +- ru/basic/security.mdx | 18 +++++++++++++++- ru/basic/view/toolbar.mdx | 2 +- tr/api-doc/oauth.mdx | 38 +++++++++++++++++++++++++++++----- tr/basic/admin-panel/users.mdx | 4 ++++ tr/basic/ai/ai-chat.mdx | 2 +- tr/basic/ai/routine.mdx | 2 +- tr/basic/base.mdx | 2 +- tr/basic/security.mdx | 18 +++++++++++++++- tr/basic/view/toolbar.mdx | 2 +- uk/api-doc/oauth.mdx | 38 +++++++++++++++++++++++++++++----- uk/basic/admin-panel/users.mdx | 4 ++++ uk/basic/ai/ai-chat.mdx | 2 +- uk/basic/ai/routine.mdx | 2 +- uk/basic/base.mdx | 2 +- uk/basic/security.mdx | 18 +++++++++++++++- uk/basic/view/toolbar.mdx | 2 +- zh/api-doc/oauth.mdx | 38 +++++++++++++++++++++++++++++----- zh/basic/admin-panel/users.mdx | 4 ++++ zh/basic/ai/ai-chat.mdx | 2 +- zh/basic/ai/routine.mdx | 2 +- zh/basic/base.mdx | 2 +- zh/basic/security.mdx | 18 +++++++++++++++- zh/basic/view/toolbar.mdx | 2 +- 77 files changed, 638 insertions(+), 110 deletions(-) diff --git a/ar/api-doc/oauth.mdx b/ar/api-doc/oauth.mdx index 3d2f5b10..34e4b5cc 100644 --- a/ar/api-doc/oauth.mdx +++ b/ar/api-doc/oauth.mdx @@ -33,13 +33,22 @@ description: "أنشئ عمليات تكامل تتيح للمستخدمين ا | المورد | النطاقات | |----------|--------| | **التطبيق** | `app\|create`, `app\|read`, `app\|update`, `app\|delete` | -| **المشروع** | `base\|read`, `base\|read_all`, `base\|update`, `base\|table_import`, `base\|table_export`, `base\|query_data` | -| **الجدول** | `table\|create`, `table\|delete`, `table\|export`, `table\|import`, `table\|read`, `table\|update`, `table\|trash_read`, `table\|trash_update`, `table\|trash_reset` | +| **المشروع** | `base\|create`, `base\|delete`, `base\|read`, `base\|read_all`, `base\|update`, `base\|table_import`, `base\|table_export`, `base\|query_data`, `base\|authority_matrix_config` | +| **الجدول** | `table\|create`, `table\|delete`, `table\|export`, `table\|import`, `table\|read`, `table\|update`, `table\|trash_read`, `table\|trash_update`, `table\|trash_reset`, `table\|archive_read`, `table\|archive_manage` | | **طريقة العرض** | `view\|create`, `view\|delete`, `view\|read`, `view\|update` | | **الحقل** | `field\|create`, `field\|delete`, `field\|read`, `field\|update` | -| **السجل** | `record\|comment`, `record\|create`, `record\|delete`, `record\|read`, `record\|update` | +| **السجل** | `record\|comment`, `record\|create`, `record\|delete`, `record\|read`, `record\|update`, `record\|archive` | | **الأتمتة** | `automation\|create`, `automation\|delete`, `automation\|read`, `automation\|update` | -| **المستخدم** | `user\|email_read`, `user\|integrations` | +| **الروتين** | `routine\|create`, `routine\|delete`, `routine\|read`, `routine\|update` | +| **المستخدم** | `user\|email_read`, `user\|integrations`, `user\|spaces_read`, `user\|self_hosted_licenses_read`, `user\|notifications_send` | + +تُستخدم نطاقات المستخدم التالية لقراءة معلومات الحساب أو للوصول إلى المستخدم: + +| النطاق | الاستخدام | +|------|------| +| `user\|spaces_read` | يضيف `spaces` إلى استجابة نقطة نهاية معلومات المستخدم `GET /api/auth/user`: المساحات التي يشغل فيها المستخدم مقعدًا، مع مستوى الاشتراك وعدد المقاعد وما إذا كانت تجريبية لكل مساحة. تُرجَع على Teable Cloud فقط | +| `user\|self_hosted_licenses_read` | يضيف `selfHostedLicenses` إلى استجابة نقطة نهاية معلومات المستخدم: تراخيص النشر ذاتي الاستضافة التي اشتراها المستخدم ولا تزال سارية، مع مستوى الاشتراك وعدد المقاعد وما إذا كانت تجريبية. تُرجَع على Teable Cloud فقط | +| `user\|notifications_send` | يرسل إشعارات داخل التطبيق إلى المستخدم المفوِّض. راجع [إرسال الإشعارات إلى المستخدمين](#إرسال-الإشعارات-إلى-المستخدمين) | لا تطلب إلا النطاقات التي يحتاج إليها تطبيقك فعليًا. سيرى المستخدمون الأذونات المطلوبة أثناء التفويض. @@ -92,7 +101,7 @@ https://app.teable.ai/api/oauth/authorize?response_type=code&client_id=YOUR_CLIE - الأذونات المطلوبة (النطاقات) - خياري الموافقة على الوصول أو رفضه -إذا سبق للمستخدم تفويض تطبيقك (خلال 7 أيام افتراضيًا)، فستتم إعادة توجيهه فورًا من دون رؤية صفحة التفويض مرة أخرى. +إذا سبق للمستخدم تفويض تطبيقك (خلال 7 أيام افتراضيًا) وكانت جميع النطاقات المطلوبة هذه المرة قد وافق عليها من قبل، فستتم إعادة توجيهه فورًا من دون رؤية صفحة التفويض مرة أخرى. وإذا طلبت نطاقات جديدة، فعلى المستخدم التأكيد من جديد، وتبقى النطاقات التي وافق عليها سابقًا محفوظة بعد التأكيد. ### الخطوة 3: معالجة معاودة الاتصال @@ -305,6 +314,25 @@ curl https://app.teable.ai/api/base/access/all \ تُرجع نقطة النهاية هذه جميع المشاريع التي يملك المستخدم الحالي إذنًا للوصول إليها. ويمكنك استخدام `baseId` من الاستجابة في استدعاءات API اللاحقة. +## إرسال الإشعارات إلى المستخدمين + +بعد الحصول على النطاق `user|notifications_send`، يستطيع تطبيقك استخدام رمز الوصول لإرسال إشعارات داخل التطبيق إلى ذلك المستخدم. تظهر الإشعارات في مركز الإشعارات لدى المستخدم مع بيان التطبيق الذي أرسلها. + +```bash +curl -X POST https://app.teable.ai/api/notifications \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"externalId": "order-1024-shipped", "text": "تم شحن الطلب 1024", "url": "https://yourapp.com/orders/1024"}' +``` + +| المعلمة | مطلوبة | الوصف | +|------|------|------| +| `externalId` | نعم | معرّف الإشعار الخاص بتطبيقك، من 1-128 حرفًا من الأحرف أو الأرقام أو `_` `.` `:` `-`. إرسال المعرّف نفسه مرة أخرى إلى المستخدم نفسه لا ينشئ إشعارًا جديدًا | +| `text` | نعم | نص الإشعار، نص عادي بحد أقصى 500 حرف. لا يترجمه Teable، لذا اكتبه بلغة المستخدم | +| `url` | لا | العنوان الذي يُفتح عند النقر على الإشعار. يجب أن يستخدم https وأن يكون مضيفه مطابقًا للصفحة الرئيسية للتطبيق أو لأحد عناوين URL لمعاودة الاتصال | + +تعني قيمة `status` في الاستجابة `created` أن الإشعار قد سُلِّم، و`duplicate` أن `externalId` هذا أُرسل من قبل، و`muted` أن المستخدم أوقف الإشعارات من هذا التطبيق. يستطيع كل تطبيق إرسال 30 إشعارًا في الدقيقة كحد أقصى إلى المستخدم الواحد، و600 في الدقيقة لجميع المستخدمين مجتمعين. وعند تجاوز الحد تُرجَع الاستجابة 429 مع الترويسة `Retry-After`. + ## تحديث رموز الوصول عند انتهاء صلاحية رمز الوصول، استخدم رمز التحديث للحصول على رمز جديد: diff --git a/ar/basic/admin-panel/users.mdx b/ar/basic/admin-panel/users.mdx index 9cc1eb61..dd5e11ed 100644 --- a/ar/basic/admin-panel/users.mdx +++ b/ar/basic/admin-panel/users.mdx @@ -24,6 +24,10 @@ description: "أدر جميع المستخدمين في نسختك عبر لوح * **تعطيل**: لا يمكن للمستخدم تسجيل الدخول، مع الاحتفاظ بالبيانات * **تنشيط**: استعادة الوصول لمستخدم معطّل +#### جلسات تسجيل الدخول + +افتح قائمة إجراءات مستخدم واختر **Sessions** لعرض الأجهزة التي سجّل المستخدم الدخول عليها حاليًا وسجل تسجيل الدخول الخاص به. انقر **Sign out** على جهاز واحد، أو **Sign out all devices**، لإجبار المستخدم على تسجيل الدخول من جديد. وما دام الحساب غير معطّل، يستطيع المستخدم تسجيل الدخول مرة أخرى. + #### إعادة تعيين كلمة المرور افتح قائمة إجراءات مستخدم واختر **إعادة تعيين كلمة المرور**. بعد التأكيد، ينشئ Teable رابطًا صالحًا لمرة واحدة يمكنك نسخه وإرساله إلى المستخدم. وإذا كان بريد الإشعارات مهيأً، يرسل Teable الرابط بالبريد الإلكتروني أيضًا. diff --git a/ar/basic/ai/ai-chat.mdx b/ar/basic/ai/ai-chat.mdx index bc5857c1..10865847 100644 --- a/ar/basic/ai/ai-chat.mdx +++ b/ar/basic/ai/ai-chat.mdx @@ -229,7 +229,7 @@ Cuppy، يرجى قراءة ذاكرة المشروع ذي المعرّف bsexxx اضبط **من يمكنه العرض** على **أي شخص لديه الرابط**، أو على **أعضاء المساحة** حتى لا يتمكن من فتحه إلا أعضاء المساحة الذين سجّلوا الدخول. - ضمن الإعدادات المتقدمة، فعّل **الحماية بكلمة مرور** وعيّن كلمة مرور. يجب على المشاهدين إدخالها قبل تحميل النتيجة التفاعلية. + ضمن الإعدادات المتقدمة، فعّل **الحماية بكلمة مرور**، فينشئ Teable كلمة مرور تلقائيًا. يجب على المشاهدين إدخالها قبل تحميل النتيجة التفاعلية. انقر **نسخ الرابط وكلمة المرور** لنسخهما معًا. استخدم **نسخ الرابط** لنسخه. إذا انتشر الرابط على نطاق أوسع من المطلوب، فإن **إعادة تعيين الرابط** ينشئ رابطًا جديدًا ويوقف الرابط القديم عن العمل. diff --git a/ar/basic/ai/routine.mdx b/ar/basic/ai/routine.mdx index f46e391e..61e3efc3 100644 --- a/ar/basic/ai/routine.mdx +++ b/ar/basic/ai/routine.mdx @@ -89,7 +89,7 @@ description: دع Cuppy ينفّذ مطالبة وفق جدول زمني، ور محادثة التشغيل للقراءة فقط. ويستطيع الأعضاء الذين يملكون تعديل الروتين متابعتها في آخرها لتتبّع كيف جرى تشغيل بعينه. -تظهر محادثة كل تشغيل أيضًا في سجل المحادثات، وتعود ملكيتها إلى آخر من حدّث الروتين، وتحمل اسم الروتين. ولا يحذف حذفُ الروتين هذه المحادثات: فهي تحتفظ بأسمائها وتصبح محادثات عادية. +تظهر محادثة كل تشغيل أيضًا في سجل المحادثات، وتعود ملكيتها إلى آخر من حدّث الروتين. تحمل محادثات التشغيل المجدول واليدوي اسم الروتين؛ أما التشغيلات الناتجة عن حدث فتُعاد تسميتها تلقائيًا بناءً على المطالبة والحدث المستلَم، ليسهل التمييز بين كل حدث وآخر في السجل. ولا يحذف حذفُ الروتين هذه المحادثات: فهي تحتفظ بأسمائها وتصبح محادثات عادية. يتطلّب الاطلاع على سجل التشغيل صلاحية تعديل الروتين. ويستطيع مالك المشروع ومنشئه إنشاء الروتينات وتعديلها وحذفها، بينما يملك بقية المتعاونين صلاحية الاطلاع فقط. diff --git a/ar/basic/base.mdx b/ar/basic/base.mdx index 749e67e2..94cb26c4 100644 --- a/ar/basic/base.mdx +++ b/ar/basic/base.mdx @@ -156,7 +156,7 @@ description: "أنشئ المشاريع وأدرها واستوردها وصدّ | **مشاركة المشروع كاملًا** | يشارك جميع العناصر في المشروع الحالي. وتُضمّن تلقائيًا الجداول والمجلدات الجديدة المضافة لاحقًا. | | **مشاركة العنصر المحدد** | يشارك العنصر المحدد حاليًا. وعند مشاركة مجلد، تُضمّن عناصره الفرعية. | -في إعدادات المشاركة، يمكنك تهيئة صلاحيات الرابط، و**السماح للمشاهدين بنسخ البيانات**، والوصول بكلمة مرور، وإعادة إنشاء الرابط، وحذف رابط المشاركة، أو نسخ تهيئة التضمين. +في إعدادات المشاركة، يمكنك تهيئة صلاحيات الرابط، و**السماح للمشاهدين بنسخ البيانات**، والوصول بكلمة مرور، وإعادة إنشاء الرابط، وحذف رابط المشاركة، أو نسخ تهيئة التضمين. عند تفعيل الوصول بكلمة مرور، ينشئ Teable كلمة مرور عشوائية تلقائيًا، ويمكنك النقر على **نسخ الرابط وكلمة المرور** لإرسالهما معًا إلى المشاهدين. راجع [حماية روابط المشاركة](/ar/basic/security#حماية-روابط-المشاركة). Fordern Sie nur die Scopes an, die Ihre Anwendung tatsächlich benötigt. Nutzer sehen die angeforderten Berechtigungen während der Autorisierung. @@ -92,7 +101,7 @@ Nutzer sehen eine Autorisierungsseite mit: - Den angeforderten Berechtigungen (Scopes) - Optionen zum Genehmigen oder Ablehnen des Zugriffs -Wenn der Nutzer Ihre App zuvor autorisiert hat (standardmäßig innerhalb von 7 Tagen), wird er sofort weitergeleitet, ohne die Autorisierungsseite erneut zu sehen. +Wenn der Nutzer Ihre App zuvor autorisiert hat (standardmäßig innerhalb von 7 Tagen) und alle angeforderten Scopes bereits genehmigt wurden, wird er sofort weitergeleitet, ohne die Autorisierungsseite erneut zu sehen. Fordert die App neue Scopes an, muss der Nutzer erneut zustimmen; die zuvor genehmigten Scopes bleiben danach erhalten. ### Schritt 3: Den Callback verarbeiten @@ -305,6 +314,25 @@ curl https://app.teable.ai/api/base/access/all \ Dieser Endpunkt gibt alle Projekte zurück, für die der aktuelle Nutzer eine Zugriffsberechtigung hat. Sie können die `baseId` aus der Antwort für nachfolgende API-Aufrufe verwenden. +## Benachrichtigungen an Nutzer senden + +Mit dem Scope `user|notifications_send` kann Ihre App diesem Nutzer über sein Zugriffstoken In-App-Benachrichtigungen senden. Die Benachrichtigung erscheint im Benachrichtigungscenter des Nutzers und zeigt an, von welcher App sie stammt. + +```bash +curl -X POST https://app.teable.ai/api/notifications \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"externalId": "order-1024-shipped", "text": "Bestellung 1024 wurde versandt", "url": "https://yourapp.com/orders/1024"}' +``` + +| Parameter | Erforderlich | Beschreibung | +|-----------|----------|-------------| +| `externalId` | Ja | Die eigene Benachrichtigungs-ID Ihrer App, 1-128 Zeichen aus Buchstaben, Ziffern oder `_` `.` `:` `-`. Wird dieselbe ID erneut an denselben Nutzer gesendet, entsteht keine neue Benachrichtigung | +| `text` | Ja | Der Benachrichtigungstext als reiner Text, höchstens 500 Zeichen. Teable übersetzt ihn nicht, verwenden Sie daher die Sprache des Nutzers | +| `url` | Nein | Die Adresse, die sich beim Klick auf die Benachrichtigung öffnet. Sie muss https verwenden und denselben Host haben wie die Homepage der App oder eine ihrer Callback-URLs | + +Der `status` in der Antwort ist `created`, wenn die Benachrichtigung zugestellt wurde, `duplicate`, wenn diese `externalId` bereits gesendet wurde, und `muted`, wenn der Nutzer Benachrichtigungen dieser App deaktiviert hat. Jede App kann einem Nutzer höchstens 30 Benachrichtigungen pro Minute senden und allen Nutzern zusammen höchstens 600 pro Minute. Darüber hinaus antwortet die API mit 429 und einem `Retry-After`-Header. + ## Zugriffstoken aktualisieren Wenn ein Zugriffstoken abläuft, verwenden Sie das Aktualisierungstoken, um ein neues abzurufen: diff --git a/de/basic/admin-panel/users.mdx b/de/basic/admin-panel/users.mdx index 2425ff09..749ed809 100644 --- a/de/basic/admin-panel/users.mdx +++ b/de/basic/admin-panel/users.mdx @@ -24,6 +24,10 @@ description: "Verwalten Sie alle Benutzer in Ihrer Instanz über das Admin-Panel * **Deaktivieren**: Der Benutzer kann sich nicht anmelden, die Daten bleiben jedoch erhalten * **Aktivieren**: Stellt den Zugriff für einen deaktivierten Benutzer wieder her +#### Anmeldesitzungen + +Öffnen Sie das Aktionsmenü eines Benutzers und wählen Sie **Sessions**, um die Geräte zu sehen, auf denen der Benutzer derzeit angemeldet ist, sowie seinen Anmeldeverlauf. Klicken Sie bei einem einzelnen Gerät auf **Sign out** oder auf **Sign out all devices**, um den Benutzer zu einer erneuten Anmeldung zu zwingen. Solange das Konto nicht deaktiviert ist, kann sich der Benutzer wieder anmelden. + #### Passwort zurücksetzen Öffnen Sie das Aktionsmenü eines Benutzers und wählen Sie **Passwort zurücksetzen**. Nach Ihrer Bestätigung erstellt Teable einen einmalig nutzbaren Link, den Sie kopieren und an den Benutzer senden können. Wenn eine Benachrichtigungs-E-Mail konfiguriert ist, sendet Teable den Link zusätzlich per E-Mail. diff --git a/de/basic/ai/ai-chat.mdx b/de/basic/ai/ai-chat.mdx index 24a4d5e5..88d5bb4e 100644 --- a/de/basic/ai/ai-chat.mdx +++ b/de/basic/ai/ai-chat.mdx @@ -229,7 +229,7 @@ Artefakte sind für die Person, die sie erstellt hat, privat. Verwenden Sie dahe Setzen Sie **Wer kann ansehen** auf **Jeder mit dem Link** oder auf **Space-Mitglieder**, damit nur angemeldete Mitglieder des Space es öffnen können. - Aktivieren Sie unter den erweiterten Einstellungen **Passwortschutz** und legen Sie ein Passwort fest. Betrachter müssen es eingeben, bevor das Artefakt geladen wird. + Aktivieren Sie unter den erweiterten Einstellungen **Passwortschutz**. Teable generiert automatisch ein Passwort, das Betrachter eingeben müssen, bevor das Artefakt geladen wird. Mit **Link und Passwort kopieren** kopieren Sie beides zusammen. Verwenden Sie **Link kopieren**, um ihn zu kopieren. Wenn der Link zu weit verbreitet wurde, erstellt **Link zurücksetzen** einen neuen und lässt den alten Link nicht mehr funktionieren. diff --git a/de/basic/ai/routine.mdx b/de/basic/ai/routine.mdx index 45e28f2a..13ef4080 100644 --- a/de/basic/ai/routine.mdx +++ b/de/basic/ai/routine.mdx @@ -89,7 +89,7 @@ Ein Lauf mit **Fehlgeschlagen** nennt seinen Grund, und jeder Grund verlangt ein Der Chat eines Laufs ist schreibgeschützt. Mitglieder, die die Routine bearbeiten dürfen, können am Ende weiterfragen, um nachzuvollziehen, wie ein bestimmter Lauf vorgegangen ist. -Die Unterhaltung jeder Ausführung erscheint auch im Chatverlauf. Sie gehört der Person, die die Routine zuletzt geändert hat, und trägt den Namen der Routine. Wird die Routine gelöscht, bleiben diese Unterhaltungen erhalten: Sie behalten ihren Namen und werden zu gewöhnlichen Chats. +Die Unterhaltung jeder Ausführung erscheint auch im Chatverlauf. Sie gehört der Person, die die Routine zuletzt geändert hat. Unterhaltungen aus geplanten und manuellen Läufen tragen den Namen der Routine; Läufe, die durch ein Ereignis ausgelöst werden, erhalten anhand des Prompts und des empfangenen Ereignisses automatisch einen eigenen Namen, damit sich die einzelnen Ereignisse im Verlauf unterscheiden lassen. Wird die Routine gelöscht, bleiben diese Unterhaltungen erhalten: Sie behalten ihren Namen und werden zu gewöhnlichen Chats. Der Ausführungsverlauf setzt die Berechtigung zum Bearbeiten der Routine voraus. Besitzer und Ersteller eines Projekts können Routinen anlegen, bearbeiten und löschen; andere Mitarbeitende haben Lesezugriff. diff --git a/de/basic/base.mdx b/de/basic/base.mdx index 130715a7..f7904ab8 100644 --- a/de/basic/base.mdx +++ b/de/basic/base.mdx @@ -156,7 +156,7 @@ Freigabeumfänge: | **Gesamtes Projekt teilen** | Teilt alle Elemente des aktuellen Projekts. Später hinzugefügte Tabellen und Ordner werden automatisch einbezogen. | | **Ausgewähltes Element teilen** | Teilt das aktuell ausgewählte Element. Wird ein Ordner geteilt, werden seine untergeordneten Elemente einbezogen. | -In den Freigabeeinstellungen können Sie Linkberechtigungen, **Zuschauern das Kopieren von Daten erlauben**, Passwortzugriff, die Neuerstellung oder Löschung des Links sowie das Kopieren der Einbettungskonfiguration festlegen. +In den Freigabeeinstellungen können Sie Linkberechtigungen, **Zuschauern das Kopieren von Daten erlauben**, Passwortzugriff, die Neuerstellung oder Löschung des Links sowie das Kopieren der Einbettungskonfiguration festlegen. Wenn Sie den Passwortzugriff aktivieren, generiert Teable automatisch ein zufälliges Passwort. Mit **Link und Passwort kopieren** senden Sie beides zusammen an die Besucher. Weitere Informationen finden Sie unter [Schutz von Freigabelinks](/de/basic/security#schutz-von-freigabelinks). Request only the scopes your application actually needs. Users will see the requested permissions during authorization. @@ -92,7 +101,7 @@ Users will see an authorization page showing: - The requested permissions (scopes) - Options to approve or deny access -If the user has previously authorized your app (within 7 days by default), they will be redirected immediately without seeing the authorization page again. +If the user has previously authorized your app (within 7 days by default) and every scope in this request was already approved, they will be redirected immediately without seeing the authorization page again. If the request adds new scopes, the user has to confirm again; after they do, the previously approved scopes are kept. ### Step 3: Handle the Callback @@ -305,6 +314,25 @@ curl https://app.teable.ai/api/base/access/all \ This endpoint returns all Projects the current user has permission to access. You can use the `baseId` from the response for subsequent API calls. +## Sending Notifications to Users + +With the `user|notifications_send` scope, your app can use the access token to send in-app notifications to that user. Notifications appear in the user's notification center and show which app sent them. + +```bash +curl -X POST https://app.teable.ai/api/notifications \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"externalId": "order-1024-shipped", "text": "Order 1024 has shipped", "url": "https://yourapp.com/orders/1024"}' +``` + +| Parameter | Required | Description | +|------|------|------| +| `externalId` | Yes | Your app's own notification ID: 1-128 letters, digits, or `_` `.` `:` `-`. Sending the same ID to the same user again does not create a new notification | +| `text` | Yes | Notification body in plain text, up to 500 characters. Teable does not translate it, so write it in the user's language | +| `url` | No | The address opened when the user clicks the notification. It must use https, and its host must match your app's homepage or one of its callback URLs | + +In the response, `status` is `created` when the notification was delivered, `duplicate` when that `externalId` was already sent, and `muted` when the user has turned off notifications from your app. Each app can send at most 30 notifications per minute to a single user and 600 per minute across all users. Beyond that, the API returns 429 with a `Retry-After` header. + ## Refreshing Access Tokens When an access token expires, use the refresh token to obtain a new one: diff --git a/en/basic/admin-panel/users.mdx b/en/basic/admin-panel/users.mdx index c54dfc40..9ff7636a 100644 --- a/en/basic/admin-panel/users.mdx +++ b/en/basic/admin-panel/users.mdx @@ -24,6 +24,10 @@ description: "Manage all users in your instance through the admin panel, includi * **Deactivate**: User cannot log in but data is retained * **Activate**: Restore access for a deactivated user +#### Sessions + +Open a user's action menu and select **Sessions** to see the devices where the user is currently signed in, along with their login history. Click **Sign out** on a single device, or click **Sign out all devices**, to force the user to sign in again. Unless the account is deactivated, the user can still sign back in. + #### Password Reset Open a user's action menu and select **Reset password**. After you confirm, Teable generates a one-time link that you can copy and send to the user. If notification email is configured, Teable also sends the link by email. diff --git a/en/basic/ai/ai-chat.mdx b/en/basic/ai/ai-chat.mdx index 870b3817..4f8c1fbe 100644 --- a/en/basic/ai/ai-chat.mdx +++ b/en/basic/ai/ai-chat.mdx @@ -229,7 +229,7 @@ Artifacts are private to the person who created them, so use a share link to let Set **Who can view** to **Anyone with the link**, or to **Space members** so only signed-in members of the space can open it. - Under the advanced settings, turn on **Password protection** and set a password. Viewers must enter it before the artifact loads. + Under the advanced settings, turn on **Password protection**. Teable generates a password automatically, and viewers must enter it before the artifact loads. Click **Copy link and password** to copy both together. Use **Copy link** to copy it. If the link has spread too far, **Reset link** issues a new one and stops the old link from working. diff --git a/en/basic/ai/routine.mdx b/en/basic/ai/routine.mdx index 06a49303..ee239983 100644 --- a/en/basic/ai/routine.mdx +++ b/en/basic/ai/routine.mdx @@ -89,7 +89,7 @@ A **Failed** run states its reason, and each reason calls for a different respon The conversation of a run is read-only. Members who can edit the routine may continue it at the end to investigate how a particular run proceeded. -Each run's conversation also appears in the chat history, owned by whoever last updated the routine, and carries the routine's name. Deleting a routine does not delete these conversations: they keep their names and become ordinary chats. +Each run's conversation also appears in the chat history, owned by whoever last updated the routine. Scheduled and manual runs carry the routine's name; event-triggered runs are renamed automatically based on the prompt and the event received, so each event is easy to tell apart in the history. Deleting a routine does not delete these conversations: they keep their names and become ordinary chats. Run history requires permission to edit the routine. A project's owner and creator can create, edit, and delete routines; other collaborators have read access. diff --git a/en/basic/base.mdx b/en/basic/base.mdx index 12c98181..30188b46 100644 --- a/en/basic/base.mdx +++ b/en/basic/base.mdx @@ -156,7 +156,7 @@ Sharing scopes include: | **Share entire project** | Shares all items in the current project. New tables and folders added later are automatically included. | | **Share selected item** | Shares the currently selected item. When a folder is shared, its child items are included. | -In the share settings, you can configure link permissions, **Allow viewers to copy data**, password access, regenerate the link, delete the share link, or copy the embed config. +In the share settings, you can configure link permissions, **Allow viewers to copy data**, password access, regenerate the link, delete the share link, or copy the embed config. When you turn on password access, Teable generates a random password; click **Copy link and password** to send both to visitors at once. See [Share Link Protection](/en/basic/security#share-link-protection). Solicita únicamente los ámbitos que tu aplicación realmente necesita. Los usuarios verán los permisos solicitados durante la autorización. @@ -92,7 +101,7 @@ Los usuarios verán una página de autorización que muestra: - Los permisos solicitados (ámbitos) - Opciones para aprobar o denegar el acceso -Si el usuario ya autorizó tu aplicación anteriormente (de forma predeterminada, en los últimos 7 días), se le redirigirá de inmediato sin volver a mostrarle la página de autorización. +Si el usuario ya autorizó tu aplicación anteriormente (de forma predeterminada, en los últimos 7 días), y todos los ámbitos solicitados ya se aprobaron antes, se le redirigirá de inmediato sin volver a mostrarle la página de autorización. Si la solicitud incluye ámbitos nuevos, el usuario debe confirmarlos de nuevo; tras confirmar, los ámbitos aprobados anteriormente se conservan. ### Paso 3: Gestionar la llamada de retorno @@ -305,6 +314,25 @@ curl https://app.teable.ai/api/base/access/all \ Este endpoint devuelve todos los Proyectos a los que el usuario actual tiene permiso de acceso. Puedes usar el `baseId` de la respuesta para las llamadas posteriores a la API. +## Enviar notificaciones a los usuarios + +Con el ámbito `user|notifications_send`, tu aplicación puede usar el token de acceso para enviar notificaciones dentro de la aplicación a ese usuario. La notificación aparece en el centro de notificaciones del usuario e indica de qué aplicación procede. + +```bash +curl -X POST https://app.teable.ai/api/notifications \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"externalId": "order-1024-shipped", "text": "El pedido 1024 se ha enviado", "url": "https://yourapp.com/orders/1024"}' +``` + +| Parámetro | Obligatorio | Descripción | +|------|------|------| +| `externalId` | Sí | ID de notificación propio de tu aplicación, de 1-128 letras, dígitos o `_` `.` `:` `-`. Volver a enviar el mismo ID al mismo usuario no crea una notificación nueva | +| `text` | Sí | Cuerpo de la notificación en texto plano, de 500 caracteres como máximo. Teable no lo traduce, así que escríbelo en el idioma del usuario | +| `url` | No | Dirección que se abre al hacer clic en la notificación. Debe usar https y tener el mismo host que la página de inicio de la aplicación o alguna de sus URL de redirección | + +Un `status` con valor `created` en la respuesta indica que la notificación se entregó; `duplicate`, que ese `externalId` ya se había enviado, y `muted`, que el usuario desactivó las notificaciones de la aplicación. Cada aplicación puede enviar como máximo 30 notificaciones por minuto al mismo usuario y 600 por minuto en total para todos los usuarios. Si se supera el límite, se devuelve 429 con la cabecera `Retry-After`. + ## Actualizar tokens de acceso Cuando caduque un token de acceso, usa el token de actualización para obtener uno nuevo: diff --git a/es/basic/admin-panel/users.mdx b/es/basic/admin-panel/users.mdx index 70a43559..2b4eeb42 100644 --- a/es/basic/admin-panel/users.mdx +++ b/es/basic/admin-panel/users.mdx @@ -24,6 +24,10 @@ description: "Administra todos los usuarios de tu instancia desde Administració * **Desactivar**: El usuario no puede iniciar sesión, pero sus datos se conservan * **Activar**: Restablece el acceso de un usuario desactivado +#### Sesiones de inicio de sesión + +Abre el menú de acciones de un usuario y selecciona **Sessions** para ver los dispositivos en los que tiene la sesión iniciada y su historial de inicios de sesión. Haz clic en **Sign out** en un dispositivo, o en **Sign out all devices**, para obligar al usuario a iniciar sesión de nuevo. Si la cuenta no está desactivada, el usuario puede volver a iniciar sesión. + #### Restablecimiento de contraseña Abre el menú de acciones de un usuario y selecciona **Restablecer contraseña**. Después de confirmar, Teable genera un enlace de un solo uso que puedes copiar y enviar al usuario. Si el correo electrónico de notificaciones está configurado, Teable también envía el enlace por correo electrónico. diff --git a/es/basic/ai/ai-chat.mdx b/es/basic/ai/ai-chat.mdx index 7f3a83ba..fac6941e 100644 --- a/es/basic/ai/ai-chat.mdx +++ b/es/basic/ai/ai-chat.mdx @@ -229,7 +229,7 @@ Los artefactos son privados para la persona que los creó, por lo que debes usar Establece **Quién puede ver** en **Cualquiera que tenga el enlace** o en **Miembros del Espacio** para que solo puedan abrirlo los miembros del Espacio que hayan iniciado sesión. - En los ajustes avanzados, activa **Protección con contraseña** y establece una contraseña. Los usuarios deben introducirla antes de que se cargue el artefacto. + En los ajustes avanzados, activa **Protección con contraseña** y Teable generará una contraseña automáticamente. Los usuarios deben introducirla antes de que se cargue el artefacto. Haz clic en **Copiar enlace y contraseña** para copiar ambos a la vez. Usa **Copiar enlace** para copiarlo. Si el enlace se ha difundido demasiado, **Restablecer enlace** genera uno nuevo y hace que el anterior deje de funcionar. diff --git a/es/basic/ai/routine.mdx b/es/basic/ai/routine.mdx index b5a459a7..ea4f33e3 100644 --- a/es/basic/ai/routine.mdx +++ b/es/basic/ai/routine.mdx @@ -89,7 +89,7 @@ Una ejecución **Fallida** indica su motivo, y cada motivo pide una respuesta di El chat de una ejecución es de solo lectura. Los miembros que pueden editar la rutina pueden continuarlo al final para investigar cómo transcurrió una ejecución concreta. -La conversación de cada ejecución también aparece en el historial de chats, pertenece a quien actualizó la rutina por última vez y conserva el nombre de la rutina. Eliminar la rutina no borra esas conversaciones: mantienen su nombre y pasan a ser chats normales. +La conversación de cada ejecución también aparece en el historial de chats, y pertenece a quien actualizó la rutina por última vez. Las conversaciones de las ejecuciones programadas y manuales conservan el nombre de la rutina; las de las ejecuciones activadas por eventos se renombran automáticamente según el prompt y el evento recibido, para que puedas distinguir cada evento en el historial. Eliminar la rutina no borra esas conversaciones: mantienen su nombre y pasan a ser chats normales. El historial de ejecuciones requiere permiso para editar la rutina. El propietario y el creador de un proyecto pueden crear, editar y eliminar rutinas; el resto de colaboradores tiene acceso de lectura. diff --git a/es/basic/base.mdx b/es/basic/base.mdx index cef4f31c..56fc9b9d 100644 --- a/es/basic/base.mdx +++ b/es/basic/base.mdx @@ -156,7 +156,7 @@ Los ámbitos de uso compartido incluyen: | **Compartir todo el Proyecto** | Comparte todos los elementos del Proyecto actual. Las Tablas y carpetas que se añadan posteriormente se incluyen automáticamente. | | **Compartir el elemento seleccionado** | Comparte el elemento seleccionado actualmente. Al compartir una carpeta, se incluyen sus elementos secundarios. | -En los ajustes de uso compartido puedes configurar los permisos del enlace, la opción **Permitir que los lectores copien datos**, el acceso mediante contraseña, volver a generar el enlace, eliminarlo o copiar la configuración de inserción. +En los ajustes de uso compartido puedes configurar los permisos del enlace, la opción **Permitir que los lectores copien datos**, el acceso mediante contraseña, volver a generar el enlace, eliminarlo o copiar la configuración de inserción. Al activar el acceso mediante contraseña, Teable genera una contraseña aleatoria; haz clic en **Copiar enlace y contraseña** para enviar ambos a los visitantes. Consulta [Protección de enlaces compartidos](/es/basic/security#protección-de-enlaces-compartidos). Demandez uniquement les scopes dont votre application a réellement besoin. Les utilisateurs verront les autorisations demandées pendant l’autorisation. @@ -92,7 +101,7 @@ Les utilisateurs verront une page d’autorisation affichant : - Les autorisations demandées (scopes) - Des options pour approuver ou refuser l’accès -Si l’utilisateur a déjà autorisé votre application (dans les 7 derniers jours par défaut), il sera redirigé immédiatement sans revoir la page d’autorisation. +Si l’utilisateur a déjà autorisé votre application (dans les 7 derniers jours par défaut) et que tous les scopes demandés ont déjà été approuvés, il sera redirigé immédiatement sans revoir la page d’autorisation. Si la requête demande de nouveaux scopes, l’utilisateur doit confirmer à nouveau ; après confirmation, les scopes approuvés précédemment sont conservés. ### Étape 3 : gérer le rappel @@ -305,6 +314,25 @@ curl https://app.teable.ai/api/base/access/all \ Ce point de terminaison renvoie tous les Projets auxquels l’utilisateur actuel est autorisé à accéder. Vous pouvez utiliser le `baseId` de la réponse pour les appels API suivants. +## Envoyer des notifications aux utilisateurs + +Avec le scope `user|notifications_send`, une application peut utiliser le jeton d’accès pour envoyer des notifications dans l’application à cet utilisateur. La notification s’affiche dans le centre de notifications de l’utilisateur et indique l’application dont elle provient. + +```bash +curl -X POST https://app.teable.ai/api/notifications \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"externalId": "order-1024-shipped", "text": "Commande 1024 expédiée", "url": "https://yourapp.com/orders/1024"}' +``` + +| Paramètre | Obligatoire | Description | +|------|------|------| +| `externalId` | Oui | L’ID de notification propre à votre application : 1-128 lettres, chiffres ou `_` `.` `:` `-`. Renvoyer le même ID au même utilisateur ne crée pas de nouvelle notification | +| `text` | Oui | Le corps de la notification, en texte brut, 500 caractères au maximum. Teable ne le traduit pas : rédigez-le dans la langue de l’utilisateur | +| `url` | Non | L’adresse ouverte lorsqu’on clique sur la notification. Elle doit être en https, et son hôte doit correspondre à la page d’accueil de l’application ou à l’une de ses URL de rappel | + +Dans la réponse, un `status` égal à `created` signifie que la notification a été remise, `duplicate` que cet `externalId` a déjà été envoyé, et `muted` que l’utilisateur a désactivé les notifications de cette application. Chaque application peut envoyer au maximum 30 notifications par minute à un même utilisateur, et 600 par minute tous utilisateurs confondus. Au-delà, l’API renvoie 429 avec un en-tête `Retry-After`. + ## Actualiser les jetons d’accès Lorsqu’un jeton d’accès expire, utilisez le jeton d’actualisation pour en obtenir un nouveau : diff --git a/fr/basic/admin-panel/users.mdx b/fr/basic/admin-panel/users.mdx index 5b64c565..e8b41e2c 100644 --- a/fr/basic/admin-panel/users.mdx +++ b/fr/basic/admin-panel/users.mdx @@ -24,6 +24,10 @@ description: "Gérez tous les utilisateurs de votre instance depuis le panneau d * **Désactiver** : l’utilisateur ne peut pas se connecter, mais ses données sont conservées * **Activer** : restaure l’accès à un utilisateur désactivé +#### Sessions de connexion + +Ouvrez le menu d’actions d’un utilisateur et sélectionnez **Sessions** pour voir les appareils sur lesquels il est actuellement connecté ainsi que son historique de connexion. Cliquez sur **Sign out** pour un appareil, ou sur **Sign out all devices**, afin d’obliger l’utilisateur à se reconnecter. Tant que le compte n’est pas désactivé, l’utilisateur peut se reconnecter. + #### Réinitialisation du mot de passe Ouvrez le menu d’actions d’un utilisateur et sélectionnez **Réinitialiser le mot de passe**. Après votre confirmation, Teable génère un lien à usage unique que vous pouvez copier et envoyer à l’utilisateur. Si l’e-mail de notification est configuré, Teable envoie également le lien par e-mail. diff --git a/fr/basic/ai/ai-chat.mdx b/fr/basic/ai/ai-chat.mdx index 7881bd7d..bab9a81d 100644 --- a/fr/basic/ai/ai-chat.mdx +++ b/fr/basic/ai/ai-chat.mdx @@ -229,7 +229,7 @@ Les artefacts sont privés pour la personne qui les a créés ; utilisez donc un Définissez **Qui peut consulter** sur **Toute personne disposant du lien**, ou sur **Membres de l’espace** afin que seuls les membres connectés de l’espace puissent l’ouvrir. - Dans les paramètres avancés, activez **Protection par mot de passe** et définissez un mot de passe. Les lecteurs doivent le saisir avant le chargement de l’artefact. + Dans les paramètres avancés, activez **Protection par mot de passe** : Teable génère automatiquement un mot de passe, que les lecteurs doivent saisir avant le chargement de l’artefact. Cliquez sur **Copier le lien et le mot de passe** pour copier les deux ensemble. Utilisez **Copier le lien** pour le copier. Si le lien a été trop largement diffusé, **Réinitialiser le lien** en crée un nouveau et désactive l’ancien lien. diff --git a/fr/basic/ai/routine.mdx b/fr/basic/ai/routine.mdx index 52f59188..88d80e7d 100644 --- a/fr/basic/ai/routine.mdx +++ b/fr/basic/ai/routine.mdx @@ -89,7 +89,7 @@ Une exécution en **Échec** indique son motif, et chaque motif appelle une rép La conversation d’une exécution est en lecture seule. Les membres autorisés à modifier la routine peuvent la poursuivre à la fin pour comprendre comment une exécution donnée s’est déroulée. -La conversation de chaque exécution apparaît aussi dans l’historique des discussions ; elle appartient à la dernière personne ayant modifié la routine et porte le nom de celle-ci. Supprimer la routine ne supprime pas ces conversations : elles gardent leur nom et deviennent des discussions ordinaires. +La conversation de chaque exécution apparaît aussi dans l’historique des discussions ; elle appartient à la dernière personne ayant modifié la routine. Les exécutions planifiées et manuelles portent le nom de la routine ; celles déclenchées par un événement sont renommées automatiquement d’après le prompt et l’événement reçu, pour distinguer chaque événement dans l’historique. Supprimer la routine ne supprime pas ces conversations : elles gardent leur nom et deviennent des discussions ordinaires. L’historique d’exécution requiert le droit de modifier la routine. Le propriétaire et le créateur d’un projet peuvent créer, modifier et supprimer des routines ; les autres collaborateurs ont un accès en lecture. diff --git a/fr/basic/base.mdx b/fr/basic/base.mdx index 26ec573b..c16af677 100644 --- a/fr/basic/base.mdx +++ b/fr/basic/base.mdx @@ -156,7 +156,7 @@ Les portées de partage incluent : | **Partager tout le Projet** | Partage tous les éléments du Projet actuel. Les nouvelles Tables et dossiers ajoutés ultérieurement sont automatiquement inclus. | | **Partager l’élément sélectionné** | Partage l’élément actuellement sélectionné. Lorsqu’un dossier est partagé, ses éléments enfants sont inclus. | -Dans les paramètres de partage, vous pouvez configurer les autorisations du lien, **Autoriser les utilisateurs à copier les données**, l’accès par mot de passe, régénérer le lien, supprimer le lien de partage ou copier la configuration d’intégration. +Dans les paramètres de partage, vous pouvez configurer les autorisations du lien, **Autoriser les utilisateurs à copier les données**, l’accès par mot de passe, régénérer le lien, supprimer le lien de partage ou copier la configuration d’intégration. Lorsque vous activez l’accès par mot de passe, Teable génère automatiquement un mot de passe aléatoire ; cliquez sur **Copier le lien et le mot de passe** pour les envoyer ensemble aux visiteurs. Voir [Protection des liens de partage](/fr/basic/security#protection-des-liens-de-partage). Richiedi soltanto gli ambiti effettivamente necessari all'applicazione. Durante l'autorizzazione, gli utenti vedranno le autorizzazioni richieste. @@ -92,7 +101,7 @@ Gli utenti vedranno una pagina di autorizzazione contenente: - Le autorizzazioni richieste (ambiti) - Le opzioni per approvare o negare l'accesso -Se l'utente ha già autorizzato l'app in precedenza (per impostazione predefinita, negli ultimi 7 giorni), verrà reindirizzato immediatamente senza visualizzare nuovamente la pagina di autorizzazione. +Se l'utente ha già autorizzato l'app in precedenza (per impostazione predefinita, negli ultimi 7 giorni) e tutti gli ambiti richiesti erano già stati approvati, verrà reindirizzato immediatamente senza visualizzare nuovamente la pagina di autorizzazione. Se la richiesta include nuovi ambiti, l'utente deve confermare di nuovo; dopo la conferma, gli ambiti approvati in precedenza restano validi. ### Passaggio 3: gestire il callback @@ -305,6 +314,25 @@ curl https://app.teable.ai/api/base/access/all \ Questo endpoint restituisce tutti i Progetti a cui l'utente corrente è autorizzato ad accedere. Puoi utilizzare il `baseId` presente nella risposta per le chiamate API successive. +## Inviare notifiche agli utenti + +Con l'ambito `user|notifications_send`, l'app può usare il token di accesso per inviare notifiche in-app all'utente. Le notifiche compaiono nel centro notifiche dell'utente e indicano l'app da cui provengono. + +```bash +curl -X POST https://app.teable.ai/api/notifications \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"externalId": "order-1024-shipped", "text": "Ordine 1024 spedito", "url": "https://yourapp.com/orders/1024"}' +``` + +| Parametro | Obbligatorio | Descrizione | +|-----------|--------------|-------------| +| `externalId` | Sì | ID della notifica definito dall'app: da 1 a 128 caratteri tra lettere, cifre e `_` `.` `:` `-`. Inviare di nuovo lo stesso ID allo stesso utente non crea una nuova notifica | +| `text` | Sì | Testo della notifica, in testo semplice, massimo 500 caratteri. Teable non lo traduce, quindi scrivilo nella lingua dell'utente | +| `url` | No | Indirizzo aperto al clic sulla notifica. Deve usare https e avere lo stesso host della homepage dell'app o di uno dei suoi URL di callback | + +Nella risposta, `status` vale `created` se la notifica è stata recapitata, `duplicate` se quell'`externalId` era già stato inviato e `muted` se l'utente ha disattivato le notifiche dell'app. Ogni app può inviare al massimo 30 notifiche al minuto allo stesso utente e 600 al minuto in totale su tutti gli utenti; oltre questi limiti la risposta è 429 con l'intestazione `Retry-After`. + ## Aggiornare i token di accesso Quando un token di accesso scade, utilizza il token di aggiornamento per ottenerne uno nuovo: diff --git a/it/basic/admin-panel/users.mdx b/it/basic/admin-panel/users.mdx index 36ed951b..94a2b866 100644 --- a/it/basic/admin-panel/users.mdx +++ b/it/basic/admin-panel/users.mdx @@ -24,6 +24,10 @@ description: "Gestisci tutti gli utenti dell'istanza tramite l'Amministrazione d * **Disattiva**: l'utente non può accedere, ma i dati vengono conservati * **Attiva**: ripristina l'accesso per un utente disattivato +#### Sessioni di accesso + +Apri il menu delle azioni di un utente e seleziona **Sessions** per vedere i dispositivi su cui l'utente ha effettuato l'accesso e la sua cronologia degli accessi. Fai clic su **Sign out** per un singolo dispositivo, oppure su **Sign out all devices**, per obbligare l'utente ad accedere di nuovo. Se l'account non è disattivato, l'utente può accedere di nuovo. + #### Reimpostazione della password Apri il menu delle azioni di un utente e seleziona **Reimposta password**. Dopo la conferma, Teable genera un link monouso che puoi copiare e inviare all'utente. Se l'email di notifica è configurata, Teable invia il link anche via email. diff --git a/it/basic/ai/ai-chat.mdx b/it/basic/ai/ai-chat.mdx index 78433b32..54c65ecd 100644 --- a/it/basic/ai/ai-chat.mdx +++ b/it/basic/ai/ai-chat.mdx @@ -229,7 +229,7 @@ Gli artefatti sono privati per la persona che li ha creati, quindi usa un link d Imposta **Chi può visualizzare** su **Chiunque abbia il link** oppure su **Membri dello Spazio**, affinché possano aprirlo soltanto i membri dello Spazio che hanno effettuato l'accesso. - Nelle impostazioni avanzate, attiva **Protezione con password** e imposta una password. Chi visualizza l'artefatto deve inserirla prima del caricamento. + Nelle impostazioni avanzate, attiva **Protezione con password**: Teable genera automaticamente una password, che chi visualizza l'artefatto deve inserire prima del caricamento. Fai clic su **Copia link e password** per copiarli insieme. Usa **Copia link** per copiarlo. Se il link si è diffuso eccessivamente, **Reimposta link** ne genera uno nuovo e disattiva quello precedente. diff --git a/it/basic/ai/routine.mdx b/it/basic/ai/routine.mdx index c0abdd9b..d80fc3f9 100644 --- a/it/basic/ai/routine.mdx +++ b/it/basic/ai/routine.mdx @@ -89,7 +89,7 @@ Un'esecuzione **Non riuscita** indica il motivo, e ogni motivo richiede una risp La chat di un'esecuzione è in sola lettura. I membri che possono modificare la routine possono proseguirla in fondo per capire come è andata una determinata esecuzione. -La conversazione di ogni esecuzione compare anche nella cronologia delle chat, appartiene a chi ha aggiornato la routine per ultimo e mantiene il nome della routine. Eliminare la routine non cancella queste conversazioni: conservano il nome e diventano chat ordinarie. +La conversazione di ogni esecuzione compare anche nella cronologia delle chat, appartiene a chi ha aggiornato la routine per ultimo. Le conversazioni delle esecuzioni pianificate e manuali mantengono il nome della routine; quelle attivate da un evento vengono rinominate automaticamente in base al prompt e all'evento ricevuto, così da distinguere ogni evento nella cronologia. Eliminare la routine non cancella queste conversazioni: conservano il nome e diventano chat ordinarie. La cronologia delle esecuzioni richiede il permesso di modificare la routine. Proprietario e creatore di un progetto possono creare, modificare ed eliminare routine; gli altri collaboratori hanno accesso in lettura. diff --git a/it/basic/base.mdx b/it/basic/base.mdx index 1f950480..9a7eb44f 100644 --- a/it/basic/base.mdx +++ b/it/basic/base.mdx @@ -156,7 +156,7 @@ Gli ambiti di condivisione includono: | **Condividi l'intero Progetto** | Condivide tutti gli elementi del Progetto corrente. Le nuove Tabelle e cartelle aggiunte successivamente vengono incluse automaticamente. | | **Condividi l'elemento selezionato** | Condivide l'elemento attualmente selezionato. Quando viene condivisa una cartella, sono inclusi i relativi elementi figli. | -Nelle impostazioni di condivisione puoi configurare le autorizzazioni del link, **Consenti a chi visualizza di copiare i dati**, l'accesso tramite password, rigenerare il link, eliminare il link di condivisione oppure copiare la configurazione di incorporamento. +Nelle impostazioni di condivisione puoi configurare le autorizzazioni del link, **Consenti a chi visualizza di copiare i dati**, l'accesso tramite password, rigenerare il link, eliminare il link di condivisione oppure copiare la configurazione di incorporamento. Quando attivi l'accesso tramite password, Teable genera automaticamente una password casuale: fai clic su **Copia link e password** per inviarli insieme a chi visita. Per i dettagli, vedi [Protezione dei link di condivisione](/it/basic/security#protezione-dei-link-di-condivisione). アプリケーションで実際に必要なスコープだけをリクエストしてください。認可時に、要求された権限がユーザーへ表示されます。 @@ -92,7 +101,7 @@ https://app.teable.ai/api/oauth/authorize?response_type=code&client_id=YOUR_CLIE - 要求された権限(スコープ) - アクセスを許可または拒否するための選択肢 -ユーザーが以前にアプリを認可している場合(デフォルトでは7日以内)、認可ページを再表示せず、すぐにリダイレクトされます。 +ユーザーが以前にアプリを認可していて(デフォルトでは7日以内)、今回リクエストしたスコープがすべて承認済みの場合は、認可ページを再表示せず、すぐにリダイレクトされます。新しいスコープをリクエストした場合は、ユーザーが改めて確認する必要があります。確認後も、以前に承認したスコープはそのまま保持されます。 ### ステップ3: コールバックを処理する @@ -305,6 +314,25 @@ curl https://app.teable.ai/api/base/access/all \ このエンドポイントは、現在のユーザーがアクセス権限を持つすべてのプロジェクトを返します。レスポンス内の`baseId`を以降のAPI呼び出しに使用できます。 +## ユーザーに通知を送信する + +`user|notifications_send` スコープを取得すると、アプリはアクセストークンを使ってそのユーザーにアプリ内通知を送信できます。通知はユーザーの通知センターに表示され、どのアプリから届いたかが明記されます。 + +```bash +curl -X POST https://app.teable.ai/api/notifications \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"externalId": "order-1024-shipped", "text": "注文 1024 を発送しました", "url": "https://yourapp.com/orders/1024"}' +``` + +| パラメーター | 必須 | 説明 | +|------|------|------| +| `externalId` | はい | アプリ独自の通知 ID。1-128 文字の英数字または `_` `.` `:` `-` で指定します。同じ ID を同じユーザーに再送しても、新しい通知は作成されません | +| `text` | はい | 通知の本文。プレーンテキストで最大 500 文字です。Teable は翻訳しないため、ユーザーの言語で記述してください | +| `url` | いいえ | 通知をクリックしたときに開く URL。https で、ホストがアプリのホームページまたはいずれかのコールバック URL と同じである必要があります | + +レスポンスの `status` が `created` の場合は配信済み、`duplicate` はその `externalId` が送信済み、`muted` はユーザーがそのアプリの通知をオフにしていることを示します。送信数の上限は、アプリごとに同一ユーザーあたり 1 分間に 30 件、全ユーザー合計で 1 分間に 600 件です。超えると 429 と `Retry-After` が返されます。 + ## アクセストークンを更新する アクセストークンの有効期限が切れたら、リフレッシュトークンを使用して新しいトークンを取得します。 diff --git a/ja/basic/admin-panel/users.mdx b/ja/basic/admin-panel/users.mdx index 5c29a247..20c4b7ba 100644 --- a/ja/basic/admin-panel/users.mdx +++ b/ja/basic/admin-panel/users.mdx @@ -24,6 +24,10 @@ description: "ユーザー情報の表示、ユーザーの無効化と削除な * **無効化**:ユーザーはログインできなくなりますが、データは保持されます * **有効化**:無効化されたユーザーのアクセス権を復元します +#### ログインセッション + +ユーザーの操作メニューを開き、**Sessions** を選択すると、そのユーザーが現在ログインしているデバイスとログイン履歴を確認できます。デバイスごとの **Sign out**、または **Sign out all devices** をクリックすると、ユーザーに再ログインを求めることができます。アカウントが無効化されていなければ、ユーザーは再びログインできます。 + #### パスワードをリセットする ユーザーの操作メニューを開き、**パスワードをリセット**を選択します。確定すると、Teableが1回限りのリンクを生成し、コピーしてユーザーへ送信できます。通知メールが設定されている場合は、Teableからリンクがメールでも送信されます。 diff --git a/ja/basic/ai/ai-chat.mdx b/ja/basic/ai/ai-chat.mdx index a15f187c..67174f75 100644 --- a/ja/basic/ai/ai-chat.mdx +++ b/ja/basic/ai/ai-chat.mdx @@ -229,7 +229,7 @@ AIがグラフ、レポート、ダッシュボード形式のページ、小規 **閲覧できるユーザー**を**リンクを知っている全員**に設定するか、サインインしているスペースのメンバーだけが開けるようにする場合は**スペースのメンバー**に設定します。 - 詳細設定で**パスワード保護**をオンにし、パスワードを設定します。閲覧者は、アーティファクトが読み込まれる前にパスワードを入力する必要があります。 + 詳細設定で**パスワード保護**をオンにすると、Teableがパスワードを自動生成します。閲覧者は、アーティファクトが読み込まれる前にパスワードを入力する必要があります。**リンクとパスワードをコピー**をクリックすると、両方をまとめてコピーできます。 **リンクをコピー**を使用してコピーします。リンクが広まりすぎた場合は、**リンクをリセット**で新しいリンクを発行し、古いリンクを無効にします。 diff --git a/ja/basic/ai/routine.mdx b/ja/basic/ai/routine.mdx index f69fc15a..d70e79bc 100644 --- a/ja/basic/ai/routine.mdx +++ b/ja/basic/ai/routine.mdx @@ -89,7 +89,7 @@ description: Cuppy がプロンプトをスケジュールどおりに実行し 実行のチャットは既定で読み取り専用です。このルーティンを編集できるメンバーは末尾から続けて質問でき、その回の処理経過を調べられます。 -各実行の会話はチャット履歴にも表示されます。所有者はそのルーティンを最後に更新したメンバーで、名前はルーティン名を引き継ぎます。ルーティンを削除してもこれらの会話は消えず、名前を保ったまま通常の会話になります。 +各実行の会話はチャット履歴にも表示されます。所有者はそのルーティンを最後に更新したメンバーです。スケジュール実行と手動実行の会話はルーティン名を引き継ぎます。イベントによる実行は、プロンプトと受信したイベントに基づいて自動的に名前が付けられるため、履歴で各イベントを区別しやすくなります。ルーティンを削除してもこれらの会話は消えず、名前を保ったまま通常の会話になります。 実行履歴の閲覧にはルーティンを編集する権限が必要です。プロジェクトの所有者と作成者はルーティンの作成・編集・削除ができ、ほかの共同編集者は閲覧のみです。 diff --git a/ja/basic/base.mdx b/ja/basic/base.mdx index 8f8ec503..22d740cc 100644 --- a/ja/basic/base.mdx +++ b/ja/basic/base.mdx @@ -156,7 +156,7 @@ description: "プロジェクトを作成、管理、インポート、エクス | **プロジェクト全体を共有** | 現在のプロジェクト内のすべての項目を共有します。後から追加した新しいテーブルとフォルダーも自動的に含まれます。| | **選択した項目を共有** | 現在選択している項目を共有します。フォルダーを共有すると、その子項目も含まれます。| -共有設定では、リンク権限、**閲覧者によるデータのコピーを許可**、パスワードアクセス、リンクの再生成、共有リンクの削除、埋め込み設定のコピーを構成できます。 +共有設定では、リンク権限、**閲覧者によるデータのコピーを許可**、パスワードアクセス、リンクの再生成、共有リンクの削除、埋め込み設定のコピーを構成できます。パスワードアクセスをオンにすると、Teableがランダムなパスワードを自動生成します。**リンクとパスワードをコピー**をクリックすれば、まとめて閲覧者に送信できます。詳しくは[共有リンクの保護](/ja/basic/security#共有リンクの保護)を参照してください。 Запрашивайте только те области действия, которые действительно нужны вашему приложению. Пользователи увидят запрошенные разрешения во время авторизации. @@ -92,7 +101,7 @@ https://app.teable.ai/api/oauth/authorize?response_type=code&client_id=YOUR_CLIE - Запрошенные разрешения (области действия) - Варианты разрешить или отклонить доступ -Если пользователь ранее авторизовал ваше приложение (по умолчанию в течение 7 дней), он будет перенаправлен немедленно, без повторного показа страницы авторизации. +Если пользователь ранее авторизовал ваше приложение (по умолчанию в течение 7 дней) и все запрошенные области действия уже были одобрены, он будет перенаправлен немедленно, без повторного показа страницы авторизации. Если запрошены новые области действия, пользователь должен подтвердить их заново; ранее одобренные области после этого сохраняются. ### Шаг 3: обработка обратного вызова @@ -305,6 +314,25 @@ curl https://app.teable.ai/api/base/access/all \ Эта конечная точка возвращает все Проекты, к которым текущий пользователь имеет разрешение на доступ. Для последующих вызовов API можно использовать `baseId` из ответа. +## Отправка уведомлений пользователям + +Получив область действия `user|notifications_send`, приложение может с помощью токена доступа отправлять этому пользователю уведомления в приложении. Уведомления появляются в центре уведомлений пользователя с указанием приложения-отправителя. + +```bash +curl -X POST https://app.teable.ai/api/notifications \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"externalId": "order-1024-shipped", "text": "Заказ 1024 отправлен", "url": "https://yourapp.com/orders/1024"}' +``` + +| Параметр | Обязательный | Описание | +|------|------|------| +| `externalId` | Да | Собственный идентификатор уведомления в вашем приложении: 1-128 букв, цифр или символов `_` `.` `:` `-`. Повторная отправка того же идентификатора тому же пользователю не создает нового уведомления | +| `text` | Да | Текст уведомления, только обычный текст, не более 500 символов. Teable его не переводит, поэтому пишите на языке пользователя | +| `url` | Нет | Адрес, который открывается при нажатии на уведомление. Должен использовать https, а его хост должен совпадать с домашней страницей приложения или одним из URL обратного вызова | + +Поле `status` в ответе принимает значение `created`, если уведомление доставлено, `duplicate`, если этот `externalId` уже отправлялся, и `muted`, если пользователь отключил уведомления от этого приложения. Каждое приложение может отправлять одному пользователю не более 30 уведомлений в минуту и не более 600 в минуту всем пользователям вместе. При превышении лимита возвращается 429 с заголовком `Retry-After`. + ## Обновление токенов доступа Когда срок действия токена доступа истекает, используйте токен обновления для получения нового: diff --git a/ru/basic/admin-panel/users.mdx b/ru/basic/admin-panel/users.mdx index 0bc6050a..e5aafc72 100644 --- a/ru/basic/admin-panel/users.mdx +++ b/ru/basic/admin-panel/users.mdx @@ -24,6 +24,10 @@ description: "Управляйте всеми пользователями в с * **Деактивировать**: Пользователь не может войти, но данные сохраняются * **Активировать**: Восстановить доступ деактивированному пользователю +#### Сеансы входа + +Откройте меню действий пользователя и выберите **Sessions**, чтобы увидеть устройства, на которых пользователь сейчас вошел в систему, и его историю входов. Нажмите **Sign out** для отдельного устройства или **Sign out all devices**, чтобы заставить пользователя войти заново. Если учетная запись не деактивирована, пользователь может снова войти. + #### Сброс пароля Откройте меню действий пользователя и выберите **Сбросить пароль**. После подтверждения Teable создаст одноразовую ссылку, которую можно скопировать и отправить пользователю. Если настроена электронная почта для уведомлений, Teable также отправит ссылку по электронной почте. diff --git a/ru/basic/ai/ai-chat.mdx b/ru/basic/ai/ai-chat.mdx index 7f377a9f..75a7ba4d 100644 --- a/ru/basic/ai/ai-chat.mdx +++ b/ru/basic/ai/ai-chat.mdx @@ -229,7 +229,7 @@ Cuppy, пожалуйста, прочитай память для Проекта Установите для **Кто может просматривать** значение **Все, у кого есть ссылка** или **Участники пространства**, чтобы только вошедшие в систему участники пространства могли открыть артефакт. - В дополнительных настройках включите **Защита паролем** и задайте пароль. Зрители должны ввести его до загрузки артефакта. + В дополнительных настройках включите **Защита паролем**, и Teable автоматически создаст пароль. Зрители должны ввести его до загрузки артефакта. **Копировать ссылку и пароль** копирует их вместе. Используйте **Копировать ссылку**, чтобы скопировать её. Если ссылка распространилась слишком широко, **Сбросить ссылку** создаст новую и отключит старую. diff --git a/ru/basic/ai/routine.mdx b/ru/basic/ai/routine.mdx index 810087ea..ad6dd54a 100644 --- a/ru/basic/ai/routine.mdx +++ b/ru/basic/ai/routine.mdx @@ -89,7 +89,7 @@ description: Cuppy выполняет промпт по расписанию, а Чат запуска доступен только для чтения. Участники, которым разрешено редактировать рутину, могут продолжить его в конце, чтобы разобраться, как проходил конкретный запуск. -Разговор каждого запуска появляется и в истории чатов: он принадлежит тому, кто последним изменил рутину, и носит её имя. Удаление рутины не удаляет эти разговоры — они сохраняют имя и становятся обычными чатами. +Разговор каждого запуска появляется и в истории чатов: он принадлежит тому, кто последним изменил рутину. Чаты запусков по расписанию и ручных запусков носят имя рутины; чаты запусков по событию переименовываются автоматически на основе промпта и полученного события, чтобы в истории было легко отличить одно событие от другого. Удаление рутины не удаляет эти разговоры — они сохраняют имя и становятся обычными чатами. Для просмотра истории выполнения нужно право на редактирование рутины. Владелец и создатель проекта могут создавать, редактировать и удалять рутины; у остальных участников доступ только на чтение. diff --git a/ru/basic/base.mdx b/ru/basic/base.mdx index bae78341..b3b019f2 100644 --- a/ru/basic/base.mdx +++ b/ru/basic/base.mdx @@ -156,7 +156,7 @@ description: "Создавайте, управляйте, импортируйт | **Поделиться всем Проектом** | Публикует все элементы текущего Проекта. Новые Таблицы и папки, добавленные позже, включаются автоматически. | | **Поделиться выбранным элементом** | Публикует выбранный в данный момент элемент. При публикации папки включаются её дочерние элементы. | -В настройках публикации можно настроить разрешения для ссылки, **Разрешить зрителям копировать данные**, доступ по паролю, повторную генерацию ссылки, удаление ссылки для публикации или копирование конфигурации встраивания. +В настройках публикации можно настроить разрешения для ссылки, **Разрешить зрителям копировать данные**, доступ по паролю, повторную генерацию ссылки, удаление ссылки для публикации или копирование конфигурации встраивания. При включении доступа по паролю Teable автоматически создает случайный пароль; нажмите **Копировать ссылку и пароль**, чтобы отправить их посетителям вместе. Подробнее см. [Защита общих ссылок](/ru/basic/security#защита-общих-ссылок). Yalnızca uygulamanızın gerçekten ihtiyaç duyduğu kapsamları isteyin. Kullanıcılar, yetkilendirme sırasında istenen izinleri görür. @@ -92,7 +101,7 @@ Kullanıcılara aşağıdakileri gösteren bir yetkilendirme sayfası sunulur: - İstenen izinler (kapsamlar) - Erişimi onaylama veya reddetme seçenekleri -Kullanıcı uygulamanızı daha önce yetkilendirdiyse (varsayılan olarak son 7 gün içinde), yetkilendirme sayfasını yeniden görmeden hemen yönlendirilir. +Kullanıcı uygulamanızı daha önce yetkilendirdiyse (varsayılan olarak son 7 gün içinde) ve istenen kapsamların tümü daha önce onaylandıysa, yetkilendirme sayfasını yeniden görmeden hemen yönlendirilir. Yeni bir kapsam istendiğinde kullanıcının yeniden onay vermesi gerekir; onayladıktan sonra daha önce onaylanan kapsamlar da korunur. ### 3. Adım: Geri Çağırmayı İşleme @@ -305,6 +314,25 @@ curl https://app.teable.ai/api/base/access/all \ Bu uç nokta, mevcut kullanıcının erişim iznine sahip olduğu tüm Projeleri döndürür. Sonraki API çağrılarında yanıttaki `baseId` değerini kullanabilirsiniz. +## Kullanıcılara Bildirim Gönderme + +`user|notifications_send` kapsamı verildiğinde uygulamanız, erişim token'ıyla o kullanıcıya uygulama içi bildirim gönderebilir. Bildirim kullanıcının bildirim merkezinde görünür ve hangi uygulamadan geldiği belirtilir. + +```bash +curl -X POST https://app.teable.ai/api/notifications \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"externalId": "order-1024-shipped", "text": "1024 numaralı sipariş kargoya verildi", "url": "https://yourapp.com/orders/1024"}' +``` + +| Parametre | Zorunlu | Açıklama | +|------|------|------| +| `externalId` | Evet | Uygulamanızın kendi bildirim kimliği; 1-128 karakter uzunluğunda harf, rakam veya `_` `.` `:` `-`. Aynı kimlik aynı kullanıcıya tekrar gönderilirse yeni bildirim oluşturulmaz | +| `text` | Evet | Bildirim metni; düz metin, en fazla 500 karakter. Teable metni çevirmez, kullanıcının dilini kullanın | +| `url` | Hayır | Bildirime tıklandığında açılan adres. https olmalı ve ana makinesi uygulamanın ana sayfası veya geri çağırma URL'lerinden biriyle aynı olmalıdır | + +Yanıttaki `status` değeri `created` ise bildirim iletilmiştir, `duplicate` ise bu `externalId` daha önce gönderilmiştir, `muted` ise kullanıcı bu uygulamanın bildirimlerini kapatmıştır. Her uygulama aynı kullanıcıya dakikada en fazla 30, tüm kullanıcılara toplamda dakikada en fazla 600 bildirim gönderebilir; sınır aşıldığında `Retry-After` başlığıyla birlikte 429 döndürülür. + ## Erişim Token'larını Yenileme Bir erişim token'ının süresi dolduğunda yenisini almak için yenileme token'ını kullanın: diff --git a/tr/basic/admin-panel/users.mdx b/tr/basic/admin-panel/users.mdx index 0d467308..539f5765 100644 --- a/tr/basic/admin-panel/users.mdx +++ b/tr/basic/admin-panel/users.mdx @@ -24,6 +24,10 @@ description: "Kullanıcı bilgilerini görüntüleme, kullanıcıları devre dı * **Devre Dışı Bırak**: Kullanıcı oturum açamaz ancak veriler korunur * **Etkinleştir**: Devre dışı bırakılan bir kullanıcının erişimini geri yükler +#### Oturumlar + +Bir kullanıcının eylem menüsünü açıp **Sessions**'ı seçerek kullanıcının şu anda oturum açık olan cihazlarını ve giriş geçmişini görüntüleyebilirsiniz. Tek bir cihaz için **Sign out**'a veya **Sign out all devices**'a tıklayarak kullanıcıyı yeniden oturum açmaya zorlayabilirsiniz. Hesap devre dışı bırakılmadıysa kullanıcı yeniden oturum açabilir. + #### Parola Sıfırlama Bir kullanıcının eylem menüsünü açıp **Parolayı sıfırla**'yı seçin. Onayladıktan sonra Teable, kopyalayıp kullanıcıya gönderebileceğiniz tek kullanımlık bir bağlantı oluşturur. Bildirim e-postası yapılandırılmışsa Teable bağlantıyı e-postayla da gönderir. diff --git a/tr/basic/ai/ai-chat.mdx b/tr/basic/ai/ai-chat.mdx index 2c9ddbea..59d8619e 100644 --- a/tr/basic/ai/ai-chat.mdx +++ b/tr/basic/ai/ai-chat.mdx @@ -229,7 +229,7 @@ Yapıtlar yalnızca onları oluşturan kişiye özeldir; başka birinin açabilm **Kimler görüntüleyebilir** ayarını **Bağlantıya sahip herkes** olarak belirleyin veya yalnızca oturum açmış Alan üyelerinin açabilmesi için **Alan üyeleri**'ni seçin. - Gelişmiş ayarlarda **Parola koruması**'nı etkinleştirip bir parola belirleyin. Görüntüleyenlerin yapıt yüklenmeden önce bu parolayı girmesi gerekir. + Gelişmiş ayarlarda **Parola koruması**'nı etkinleştirdiğinizde Teable otomatik olarak bir parola oluşturur. Görüntüleyenlerin yapıt yüklenmeden önce bu parolayı girmesi gerekir. İkisini birlikte kopyalamak için **Bağlantıyı ve şifreyi kopyala**'ya tıklayın. Kopyalamak için **Bağlantıyı kopyala**'yı kullanın. Bağlantı gereğinden fazla yayıldıysa **Bağlantıyı sıfırla** yeni bir bağlantı oluşturur ve eskisini kullanılamaz hâle getirir. diff --git a/tr/basic/ai/routine.mdx b/tr/basic/ai/routine.mdx index 453e6205..ce423985 100644 --- a/tr/basic/ai/routine.mdx +++ b/tr/basic/ai/routine.mdx @@ -89,7 +89,7 @@ Rutini açıp **Çalıştırma Geçmişi** sekmesine geçin. Liste duruma ve tar Bir çalıştırmanın sohbeti salt okunurdur. Rutini düzenleyebilen üyeler, belirli bir çalıştırmanın nasıl ilerlediğini incelemek için sohbetin sonundan devam edebilir. -Her çalıştırmanın konuşması sohbet geçmişinde de görünür; rutini en son güncelleyen kişiye aittir ve rutinin adını taşır. Rutini silmek bu konuşmaları silmez: adlarını korur ve sıradan sohbetlere dönüşürler. +Her çalıştırmanın konuşması sohbet geçmişinde de görünür; rutini en son güncelleyen kişiye aittir. Zamanlamayla ve elle başlatılan çalıştırmaların konuşmaları rutinin adını taşır; olayla tetiklenen çalıştırmalar ise prompt'a ve gelen olaya göre otomatik olarak yeniden adlandırılır, böylece geçmişte her olayı birbirinden ayırt edebilirsiniz. Rutini silmek bu konuşmaları silmez: adlarını korur ve sıradan sohbetlere dönüşürler. Çalıştırma geçmişi için rutini düzenleme izni gerekir. Bir projenin sahibi ve oluşturucusu rutin oluşturabilir, düzenleyebilir ve silebilir; diğer iş arkadaşlarının erişimi okuma düzeyindedir. diff --git a/tr/basic/base.mdx b/tr/basic/base.mdx index 48052931..9a2ba9d6 100644 --- a/tr/basic/base.mdx +++ b/tr/basic/base.mdx @@ -156,7 +156,7 @@ Paylaşım kapsamları şunlardır: | **Tüm Projeyi paylaş** | Geçerli Projedeki tüm öğeleri paylaşır. Daha sonra eklenen yeni tablolar ve klasörler otomatik olarak dahil edilir. | | **Seçili öğeyi paylaş** | Geçerli seçili öğeyi paylaşır. Bir klasör paylaşıldığında alt öğeleri de dahil edilir. | -Paylaşım ayarlarında bağlantı izinlerini, **Görüntüleyenlerin veri kopyalamasına izin ver** seçeneğini ve parolayla erişimi yapılandırabilir; bağlantıyı yeniden oluşturabilir veya silebilir ve gömme yapılandırmasını kopyalayabilirsiniz. +Paylaşım ayarlarında bağlantı izinlerini, **Görüntüleyenlerin veri kopyalamasına izin ver** seçeneğini ve parolayla erişimi yapılandırabilir; bağlantıyı yeniden oluşturabilir veya silebilir ve gömme yapılandırmasını kopyalayabilirsiniz. Parolayla erişimi açtığınızda Teable otomatik olarak rastgele bir parola oluşturur; **Bağlantıyı ve şifreyi kopyala**'ya tıklayarak ikisini birlikte ziyaretçilere gönderebilirsiniz. Ayrıntılar için [Paylaşım Bağlantısı Koruması](/tr/basic/security#paylaşım-bağlantısı-koruması) bölümüne bakın. Запитуйте лише ті області дозволів, які справді потрібні вашому застосунку. Під час авторизації користувачі бачитимуть запитані дозволи. @@ -92,7 +101,7 @@ https://app.teable.ai/api/oauth/authorize?response_type=code&client_id=YOUR_CLIE - Запитані дозволи (області дозволів) - Варіанти надання або відхилення доступу -Якщо користувач уже авторизував ваш застосунок (за замовчуванням протягом останніх 7 днів), його буде негайно переспрямовано без повторного показу сторінки авторизації. +Якщо користувач уже авторизував ваш застосунок (за замовчуванням протягом останніх 7 днів) і всі запитані області дозволів уже були схвалені, його буде негайно переспрямовано без повторного показу сторінки авторизації. Якщо запит містить нові області дозволів, користувач має підтвердити їх знову; після підтвердження раніше схвалені області зберігаються. ### Крок 3. Обробіть зворотний виклик @@ -305,6 +314,25 @@ curl https://app.teable.ai/api/base/access/all \ Ця кінцева точка повертає всі Проєкти, до яких поточний користувач має дозвіл на доступ. Значення `baseId` із відповіді можна використовувати в наступних викликах API. +## Надсилання сповіщень користувачам + +З областю дозволів `user|notifications_send` застосунок може надсилати користувачу сповіщення в Teable за допомогою його токена доступу. Сповіщення з’являються в центрі сповіщень користувача з позначкою, від якого застосунку вони надійшли. + +```bash +curl -X POST https://app.teable.ai/api/notifications \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"externalId": "order-1024-shipped", "text": "Замовлення 1024 відправлено", "url": "https://yourapp.com/orders/1024"}' +``` + +| Параметр | Обов’язковий | Опис | +|------|------|------| +| `externalId` | Так | Власний ідентифікатор сповіщення в застосунку: 1-128 літер, цифр або символів `_` `.` `:` `-`. Повторне надсилання того самого ідентифікатора тому самому користувачу не створює нового сповіщення | +| `text` | Так | Текст сповіщення, звичайний текст, не більше 500 символів. Teable його не перекладає, тому пишіть мовою користувача | +| `url` | Ні | Адреса, яка відкривається після натискання на сповіщення. Має використовувати https і той самий хост, що й домашня сторінка застосунку або одна з URL-адрес зворотного виклику | + +Поле `status` у відповіді має значення `created`, якщо сповіщення доставлено, `duplicate`, якщо цей `externalId` уже надсилали, і `muted`, якщо користувач вимкнув сповіщення від цього застосунку. Кожен застосунок може надсилати одному користувачу до 30 сповіщень за хвилину і до 600 за хвилину всім користувачам разом. У разі перевищення повертається 429 із заголовком `Retry-After`. + ## Оновлення токенів доступу Коли термін дії токена доступу закінчиться, скористайтеся токеном оновлення, щоб отримати новий: diff --git a/uk/basic/admin-panel/users.mdx b/uk/basic/admin-panel/users.mdx index 79663b5d..9d9cfd63 100644 --- a/uk/basic/admin-panel/users.mdx +++ b/uk/basic/admin-panel/users.mdx @@ -24,6 +24,10 @@ description: "Керуйте всіма користувачами екземп * **Деактивувати**: користувач не може ввійти, але дані зберігаються * **Активувати**: відновити доступ деактивованого користувача +#### Сеанси входу + +Відкрийте меню дій користувача й виберіть **Sessions**, щоб переглянути пристрої, на яких користувач зараз увійшов, та історію його входів. Натисніть **Sign out** для окремого пристрою або **Sign out all devices**, щоб змусити користувача ввійти знову. Якщо обліковий запис не деактивовано, користувач зможе ввійти знову. + #### Скидання пароля Відкрийте меню дій користувача й виберіть **Скинути пароль**. Після підтвердження Teable створить одноразове посилання, яке можна скопіювати й надіслати користувачу. Якщо налаштовано електронну пошту сповіщень, Teable також надішле посилання електронною поштою. diff --git a/uk/basic/ai/ai-chat.mdx b/uk/basic/ai/ai-chat.mdx index 1ecacb63..e3d90993 100644 --- a/uk/basic/ai/ai-chat.mdx +++ b/uk/basic/ai/ai-chat.mdx @@ -229,7 +229,7 @@ AI Chat може підтримувати середовище однієї ро Для параметра **Хто може переглядати** виберіть **Усі, хто має посилання** або **Учасники Простору**, щоб артефакт могли відкрити лише учасники Простору, які ввійшли в систему. - У розширених налаштуваннях увімкніть **Захист паролем** і задайте пароль. Глядачі мають ввести його перед завантаженням артефакту. + У розширених налаштуваннях увімкніть **Захист паролем**, і Teable автоматично згенерує пароль. Глядачі мають ввести його перед завантаженням артефакту. Натисніть **Копіювати посилання та пароль**, щоб скопіювати їх разом. Натисніть **Копіювати посилання**, щоб скопіювати його. Якщо посилання потрапило до небажаних користувачів, команда **Скинути посилання** створить нове й припинить дію попереднього. diff --git a/uk/basic/ai/routine.mdx b/uk/basic/ai/routine.mdx index 7cdf09e6..83c46d23 100644 --- a/uk/basic/ai/routine.mdx +++ b/uk/basic/ai/routine.mdx @@ -89,7 +89,7 @@ description: Cuppy виконує промпт за розкладом, а ре Чат запуску доступний лише для читання. Учасники, яким дозволено редагувати рутину, можуть продовжити його в кінці, щоб розібратися, як минув конкретний запуск. -Розмова кожного запуску з’являється й в історії чатів: вона належить тому, хто востаннє оновив рутину, і має назву рутини. Видалення рутини не видаляє ці розмови — вони зберігають назву й стають звичайними чатами. +Розмова кожного запуску з’являється й в історії чатів: вона належить тому, хто востаннє оновив рутину. Розмови запланованих і ручних запусків мають назву рутини; запуски за подією отримують назву автоматично на основі промпту та отриманої події, тож їх легко розрізнити в історії. Видалення рутини не видаляє ці розмови: вони зберігають назву й стають звичайними чатами. Для перегляду історії запусків потрібне право редагувати рутину. Власник і творець проєкту можуть створювати, редагувати та видаляти рутини; решта співавторів має доступ лише на читання. diff --git a/uk/basic/base.mdx b/uk/basic/base.mdx index 9218e1a4..7ad4f8f5 100644 --- a/uk/basic/base.mdx +++ b/uk/basic/base.mdx @@ -156,7 +156,7 @@ description: "Створюйте, керуйте, імпортуйте й екс | **Поширити весь Проєкт** | Поширює всі елементи поточного Проєкту. Нові таблиці й папки, додані пізніше, включаються автоматично. | | **Поширити вибраний елемент** | Поширює поточний вибраний елемент. Якщо поширено папку, включаються її дочірні елементи. | -У налаштуваннях поширення можна задати дозволи посилання, **Дозволити читачам копіювати дані**, доступ за паролем, повторно згенерувати або видалити посилання й скопіювати конфігурацію вбудовування. +У налаштуваннях поширення можна задати дозволи посилання, **Дозволити читачам копіювати дані**, доступ за паролем, повторно згенерувати або видалити посилання й скопіювати конфігурацію вбудовування. Коли ви вмикаєте доступ за паролем, Teable автоматично генерує випадковий пароль; натисніть **Копіювати посилання та пароль**, щоб надіслати їх відвідувачам разом. Докладніше див. [Захист посилань для спільного доступу](/uk/basic/security#захист-посилань-для-спільного-доступу). 只请求应用实际需要的权限范围。用户在授权时会看到请求的权限列表。 @@ -92,7 +101,7 @@ https://app.teable.ai/api/oauth/authorize?response_type=code&client_id=YOUR_CLIE - 请求的权限(范围) - 批准或拒绝选项 -如果用户之前已授权过您的应用(默认 7 天内有效),将直接重定向而不再显示授权页面。 +如果用户之前已授权过您的应用(默认 7 天内有效),且本次请求的权限范围都已被批准过,将直接重定向而不再显示授权页面。请求了新的权限范围时,用户需要重新确认;确认后,之前批准的范围仍然保留。 ### 步骤 3:处理回调 @@ -305,6 +314,25 @@ curl https://app.teable.ai/api/base/access/all \ 该接口返回当前用户有权限访问的所有项目,可从中获取 `baseId` 用于后续 API 调用。 +## 向用户发送通知 + +获得 `user|notifications_send` 权限范围后,应用可以用访问令牌向该用户发送站内通知。通知会显示在用户的通知中心,并注明来自哪个应用。 + +```bash +curl -X POST https://app.teable.ai/api/notifications \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"externalId": "order-1024-shipped", "text": "订单 1024 已发货", "url": "https://yourapp.com/orders/1024"}' +``` + +| 参数 | 必填 | 描述 | +|------|------|------| +| `externalId` | 是 | 应用自己的通知 ID,1-128 位字母、数字或 `_` `.` `:` `-`。同一 ID 重复发送给同一用户不会产生新通知 | +| `text` | 是 | 通知正文,纯文本,最多 500 个字符。Teable 不会翻译,请使用用户的语言 | +| `url` | 否 | 点击通知后打开的地址,必须是 https,且主机与应用主页或某个回调 URL 相同 | + +响应中的 `status` 为 `created` 表示已送达,`duplicate` 表示该 `externalId` 已发送过,`muted` 表示用户关闭了该应用的通知。每个应用对同一用户每分钟最多发送 30 条,全部用户合计每分钟最多 600 条,超出时返回 429 并带有 `Retry-After`。 + ## 刷新访问令牌 当访问令牌过期时,使用刷新令牌获取新的访问令牌: diff --git a/zh/basic/admin-panel/users.mdx b/zh/basic/admin-panel/users.mdx index 8ab53641..f109a718 100644 --- a/zh/basic/admin-panel/users.mdx +++ b/zh/basic/admin-panel/users.mdx @@ -24,6 +24,10 @@ description: "在管理员后台管理实例下的所有用户,包括查看用 * **停用**:用户无法登录但数据保留 * **激活**:恢复已停用用户的访问权限 +#### 登录会话 + +打开用户的操作菜单并选择 **登录会话**,可以查看该用户当前已登录的设备及其登录日志。点击单台设备的 **退出登录**,或点击 **退出所有设备**,可以强制该用户重新登录。账号未被停用时,用户仍可重新登录。 + #### 重置密码 打开用户的操作菜单并选择**重置密码**。确认后,Teable 会生成一次性重置链接。管理员可以复制链接发给用户;如果已配置通知邮箱,Teable 也会通过邮件发送。 diff --git a/zh/basic/ai/ai-chat.mdx b/zh/basic/ai/ai-chat.mdx index b39d7aa4..a7665476 100644 --- a/zh/basic/ai/ai-chat.mdx +++ b/zh/basic/ai/ai-chat.mdx @@ -229,7 +229,7 @@ Artifact 默认只有创建者本人能打开,要让别人查看,需要开 把 **可见范围** 设为 **任何拥有链接的人**,或设为 **空间成员**,只允许已登录的空间成员打开。 - 在高级设置中开启 **密码保护** 并设置密码,访问者需要先输入密码才能看到内容。 + 在高级设置中开启 **密码保护**,Teable 会自动生成一个密码,访问者需要先输入密码才能看到内容。点击 **复制链接和密码** 可以把两者一起复制。 点击 **复制链接** 复制。如果链接扩散范围超出预期,用 **重置链接** 换一条新链接,原链接随即失效。 diff --git a/zh/basic/ai/routine.mdx b/zh/basic/ai/routine.mdx index 09a9b147..e59f5b6a 100644 --- a/zh/basic/ai/routine.mdx +++ b/zh/basic/ai/routine.mdx @@ -89,7 +89,7 @@ description: 让 Cuppy 按计划自动运行一段提示词,并在运行历史 运行对话默认只读。有权限修改这个例行任务的成员可以在对话末尾继续追问,用于排查某次运行的处理过程。 -每次运行的对话也会出现在对话历史记录中,归属于最后一次更新这个例行任务的成员,对话名称沿用例行任务的名称。删除例行任务不会删掉这些对话,它们会保留名称,变成普通对话。 +每次运行的对话也会出现在对话历史记录中,归属于最后一次更新这个例行任务的成员。定时和手动运行的对话名称沿用例行任务的名称;事件触发的运行会根据提示词和收到的事件自动重命名,便于在历史记录中区分每次事件。删除例行任务不会删掉这些对话,它们会保留名称,变成普通对话。 运行历史需要修改例行任务的权限才能查看。项目的所有者和创建者可以创建、修改和删除例行任务,其他协作者只能查看。 diff --git a/zh/basic/base.mdx b/zh/basic/base.mdx index 93bbca04..55812a8e 100644 --- a/zh/basic/base.mdx +++ b/zh/basic/base.mdx @@ -156,7 +156,7 @@ description: "创建、管理、导入导出项目。通过 .tea 文件在 Teabl | **分享整个项目** | 分享当前项目中的全部节点。之后新增的数据表和文件夹也会自动包含在分享范围内。| | **分享选定的节点** | 分享当前选中的节点。分享文件夹时,会同时包含该文件夹下的子节点。| -分享设置中可以配置链接权限、允许查看者复制数据、访问密码,也可以重新生成链接、删除分享链接或复制嵌入配置。 +分享设置中可以配置链接权限、允许查看者复制数据、访问密码,也可以重新生成链接、删除分享链接或复制嵌入配置。开启访问密码后,Teable 会自动生成一个随机密码,点击 **复制链接和密码** 即可一起发给访问者,详见 [分享链接保护](/zh/basic/security#分享链接保护)。