أسماء الحقول ورموز الأخطاء وأمثلة الشيفرة بالإنجليزية، كما تستخدمها في برنامجك.
حزم SDK
كل حزم ديوان وطريقة تثبيتها: الخوادم (Node وPython)، والويب، وReact Native، وFlutter، وiOS وAndroid.
لدى ديوان نوعان من الحزم. حزم الخادم تحمل مفتاح API وتنشئ الغرف وروابط الانضمام والرموز. حزم العميل تعمل في المتصفح أو التطبيق وتُدخل الناس إلى الاجتماع — ولا ترى مفتاح API أبداً؛ يعطيها خادمك رابط انضمام أو رمزاً.
| أين | الحزمة | التثبيت |
|---|---|---|
| Node وBun وDeno والحافة (خادم) | @deewan/sdk | npm install @deewan/sdk |
| Python (خادم) | deewan | pip install deewan |
| أي لغة خادم أخرى | HTTPS وJSON | OpenAPI 3.1 |
| المتصفح، واجهة مخصّصة | @deewan/client | npm install @deewan/client |
| React Native / Expo | @deewan/react-native | npx expo install @deewan/react-native react-native-webview |
| Flutter | deewan | flutter pub add deewan |
| iOS (Swift) · Android (Kotlin) | عارض الويب في النظام | تطبيقات الجوال |
حزمة الخادم لـ Node.js
npm install @deewan/sdkمكتوبة بأنواع كاملة، تعيد المحاولة تلقائيًا وبلا اعتماديات. تعمل على Node 18+ وBun وDeno وبيئات الحافة. للخادم فقط لأنها تحمل مفتاح API.
import { Deewan, DeewanError } from "@deewan/sdk";
const deewan = new Deewan({
apiKey: process.env.DEEWAN_API_KEY!,
timeout: 15_000, // per request, ms
maxRetries: 2, // for 429 and 5xx on safe requests
});
try {
for await (const room of deewan.rooms.all()) {
console.log(room.name, room.url);
}
} catch (error) {
if (error instanceof DeewanError) {
console.error(error.status, error.code, error.message, error.requestId);
}
}الدوال
| Node | Python | نقطة النهاية |
|---|---|---|
me() | me() | GET /me |
rooms.list() · rooms.all() | rooms.list() · rooms.all() | GET /rooms |
rooms.create() · retrieve() · update() · delete() | الأسماء نفسها | /rooms, /rooms/{id} |
rooms.createJoinLink() | rooms.create_join_link() | POST /rooms/{id}/join-links |
rooms.createToken() | rooms.create_token() | POST /rooms/{id}/tokens |
rooms.listParticipants() · muteParticipant() · removeParticipant() · end() | list_participants() · mute_participant() · remove_participant() · end() | /rooms/{id}/participants, /end |
rooms.listWaiting() · admit() · deny() | list_waiting() · admit() · deny() | /rooms/{id}/waiting |
meetings.list() · create() · retrieve() · update() · cancel() | الأسماء نفسها | /meetings |
polls.list() · create() · close() · reopen() · delete() | الأسماء نفسها | /rooms/{id}/polls, /polls/{id} |
breakouts.get() · start() · move() · announce() · end() | الأسماء نفسها | /rooms/{id}/breakouts |
recordings.list() · retrieve() · download() · delete() | الأسماء نفسها | /recordings |
webhooks.list() · create() · update() · delete() · test() | الأسماء نفسها | /webhooks |
verifyWebhook(raw, header, secret) | verify_webhook(raw, header, secret) | يتحقق من توقيع الويب هوك |
حزمة الخادم لـ Python
pip install deewan
# Only if you download recordings (decrypts them on your server):
pip install "deewan[recordings]"Python 3.9 فأحدث، بلا اعتماديات (عميل HTTP في المكتبة القياسية). المهلة وإعادة المحاولة والأخطاء نفسها كما في حزمة Node؛ وترفض إعادة التوجيه وhttp العادي، فلا يذهب مفتاحك إلا إلى ديوان.
import os
from deewan import Deewan, DeewanError
deewan = Deewan(os.environ["DEEWAN_API_KEY"])
room = deewan.rooms.create(name="Onboarding call")
link = deewan.rooms.create_join_link(
room["id"], name="Sara", role="host",
redirect_url="https://app.example.com/done",
)
print(link["url"])
try:
deewan.rooms.retrieve("missing")
except DeewanError as error:
print(error.status, error.code, error.message, error.request_id)from deewan import DeewanError, verify_webhook
@app.post("/deewan/webhooks")
def deewan_webhook():
try:
event = verify_webhook(request.get_data(), request.headers.get("Deewan-Signature"), os.environ["DEEWAN_WEBHOOK_SECRET"])
except DeewanError:
return "", 400
print(event["type"], event["data"])
return "", 204حزمة المتصفح
npm install @deewan/clientللواجهات المخصّصة: تتصل برمز وسائط، وتفعّل التشفير من طرف إلى طرف، وتمنحك المشاركين والمسارات والدردشة والأحداث. راجع الانضمام إلى الاجتماعات.
React Native وFlutter وiOS وAndroid
راجع تطبيقات الجوال: ضمّن اجتماع ديوان بمكوّن واحد، أو انضم برمز وارسم شاشاتك بنفسك.
لغات أخرى
الواجهة HTTPS وJSON بمفتاح Bearer، فتعمل معها أي لغة (Go وPHP وRuby وJava و.NET…). ولّد عميلاً بأنواع كاملة من وثيقة OpenAPI، أو استدعها مباشرة:
curl -X POST https://deewan.io/api/v1/rooms/ROOM_ID/join-links \
-H "Authorization: Bearer $DEEWAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Sara", "role": "host"}'