BBrowser.Platform

INTEGRATION GUIDE · v1

اربط أي تطبيق أو وكيل أو ووركفلو بالمنصة.

واجهة واحدة للمحادثة والصور والفيديو. لا يحتاج المستهلك لمعرفة تفاصيل المتصفح أو اسم المزود؛ يرسل مهمة، ثم يقرأ نتيجتها عند الانتهاء.

01 · START

قبل أول طلب

  1. افتح مفاتيح API وأنشئ مفتاحًا منفصلًا لكل تطبيق أو وركفلو.
  2. اربط حسابًا واحدًا على الأقل من الحسابات والجلسات.
  3. اجعل تطبيقك يحتفظ بالمفتاح في متغير بيئة، لا في الواجهة الأمامية أو المستودع.
عنوان المنصةhttps://myapi-console.7akwy.net
المصادقة لكل طلب: Authorization: Bearer bpk_...

02 · REST API

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

استخدم مفتاح التطبيق الذي أنشأته من اللوحة. كل عملية توليد تُرسل افتراضيًا بشكل غير متزامن: تحصل فورًا على id ثم تستعلم عنه حتى ينتهي.

POST/chatمحادثة
POST/imageصور
POST/videoفيديو
GET/jobs/:idمتابعة مهمة
GET/providersالمزودون المتاحون
GET/files/:idتنزيل الناتج
curl -X POST https://myapi-console.7akwy.net/image \
  -H "Authorization: Bearer $BROWSER_PLATFORM_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "تصميم إعلان لمنتج قهوة فاخرة",
    "provider": "chatgpt",
    "aspectRatio": "1:1",
    "async": true
  }'

// 202 Accepted
{ "id": "job-uuid", "status": "queued", "statusUrl": "/jobs/job-uuid" }

03 · JOB WORKFLOW

دورة المهمة الصحيحة

1أرسل مهمةPOST /image أو /video أو /chat
2احفظ idلا تنتظر الاستجابة النهائية
3استعلم كل 3–5 ثوانٍGET /jobs/:id
4نزّل الملفGET downloadUrl بالمفتاح نفسه
GET /jobs/job-uuid

{
  "id": "job-uuid",
  "status": "succeeded",
  "result": {
    "assets": [{
      "id": "asset-uuid",
      "mimeType": "image/png",
      "downloadUrl": "/files/asset-uuid"
    }]
  }
}

عند ظهور downloadUrl أضف عنوان المنصة قبله، ثم نزّل الملف بنفس مفتاح API. هذا يجعل التكامل يعمل حتى إن كان تطبيقك خارج الخادم.

04 · PROVIDERS

كيف يعمل مع مزود جديد مستقبلًا

لا تثبّت داخل تطبيقك قائمة ثابتة بالموديلات أو المقاسات. اطلب المزودين الحاليين ثم تفاصيل المزود في وقت التشغيل:

GET /providers
GET /providers/chatgpt/health?userId=default
GET /providers/chatgpt/metadata?userId=default

استخدم metadata لمعرفة الخيارات التي اكتشفها النظام الآن، مثل النموذج أو الدقة أو نسبة العرض. عند إضافة مزود نشط جديد سيظهر تلقائيًا في /providers وفي أداة MCP list_providers؛ لا يلزم تغيير عميلك.

مهم إضافة “طلب تكامل” في اللوحة تسجل متطلبات المزود فقط. لا يصبح مزودًا نشطًا حتى يكتمل محوله الخاص وتسجيله في المنصة.

05 · MCP

ربط وكيل ذكاء اصطناعي عبر MCP

يتوفر خادم MCP من نوع Streamable HTTP على نفس الدومين. استخدم مفتاح تطبيق عادي؛ لا تستخدم كلمة مرور لوحة التحكم ولا المفتاح الرئيسي.

{
  "mcpServers": {
    "browser-platform": {
      "url": "https://myapi-console.7akwy.net/mcp",
      "headers": {
        "Authorization": "Bearer ${BROWSER_PLATFORM_KEY}"
      }
    }
  }
}

الصيغة أعلاه تناسب العملاء الذين يدعمون MCP عن بُعد. في أي عميل آخر، أضف خادم Streamable HTTP بعنوان https://myapi-console.7akwy.net/mcp ورأس Authorization نفسه.

الأداةمهمتها
list_providersالمزودون والقدرات المتاحة الآن
get_provider_healthالتأكد من صلاحية جلسة الحساب قبل الإنفاق
get_provider_metadataالنماذج والخيارات المكتشفة حاليًا
generate_chat / generate_image / generate_videoإنشاء مهمة غير متزامنة
get_jobمتابعة المهمة والحصول على downloadUrl
cancel_jobإلغاء مهمة بطلب صريح من المستخدم

06 · CLAUDE

Claude Desktop وClaude web وClaude Code

Claude Desktop / Claude web / Cowork

  1. افتح Customize → Connectors → Add custom connector.
  2. اكتب اسمًا مثل Browser Platform والرابط https://myapi-console.7akwy.net/mcp.
  3. اترك OAuth Client ID وOAuth Client Secret فارغين، ثم اضغط Add.
  4. ستفتح صفحة Browser Platform: سجّل دخولك إلى اللوحة ثم اضغط السماح والربط.

يحصل Claude على رمز OAuth قصير العمر خاص به؛ لا يرى كلمة مرور اللوحة ولا مفتاح التطبيق.

Claude Code

أنشئ مفتاح تطبيق من مفاتيح API وضعه في متغير بيئة، ثم نفّذ:

export BROWSER_PLATFORM_KEY='bpk_…'
claude mcp add --scope user --transport http browser-platform \
  https://myapi-console.7akwy.net/mcp \
  --header "Authorization: Bearer $BROWSER_PLATFORM_KEY"

claude mcp list

07 · AGENT CLI

OpenClaw وHermes Agent

كلاهما يتصل مباشرة بخادم MCP نفسه. أنشئ مفتاح تطبيق باسم الوكيل من لوحة المفاتيح، ولا تضعه في مستودع Git.

OpenClaw

openclaw mcp set browser-platform \
  '{"url":"https://myapi-console.7akwy.net/mcp","transport":"streamable-http","headers":{"Authorization":"Bearer REPLACE_WITH_APPLICATION_KEY"},"requestTimeoutMs":900000}'

openclaw mcp doctor browser-platform --probe

أو استخدم قالب إعداد OpenClaw وأضف مفتاحك محليًا.

Hermes Agent

أضف المفتاح إلى ~/.hermes/.env:

BROWSER_PLATFORM_KEY=ضع_مفتاح_التطبيق_هنا

ثم أضف هذا القسم إلى ~/.hermes/config.yaml وأعد تحميل MCP:

mcp_servers:
  browser-platform:
    url: "https://myapi-console.7akwy.net/mcp"
    headers:
      Authorization: "Bearer ${BROWSER_PLATFORM_KEY}"
    timeout: 900
    connect_timeout: 10

قالب جاهز: hermes-config.yaml. سيظهر لدى Hermes اسم الأدوات مسبوقًا باسم الخادم، مثل mcp_browser-platform_generate_image.

CLI مستقل للتشغيل والاختبار

حمّل browser-platform.mjs، ثم شغله بأي مكان يتوفر فيه Node.js 20+:

export BROWSER_PLATFORM_KEY='bpk_…'
node browser-platform.mjs providers
node browser-platform.mjs image --prompt="إعلان قهوة" --provider=chatgpt
node browser-platform.mjs job --id=JOB_ID

07 · ERRORS & RULES

ما الذي يجب أن يفعله التطبيق عند الخطأ؟

الحالةتصرف التطبيق أو الوكيل
queued / runningواصل الاستعلام بهدوء؛ لا ترسل المهمة مرة أخرى.
SESSION_EXPIRED أو SESSION_MISSINGاطلب من المالك إعادة ربط الحساب من لوحة التحكم. لا تعِد المحاولة تلقائيًا.
INSUFFICIENT_CREDITSأبلغ المستخدم أو اختر حسابًا/مزودًا آخرًا يحدده هو.
GENERATION_REJECTEDاطلب إعادة صياغة المحتوى؛ لا تتحايل على سياسة المزود.
SELECTOR_NOT_FOUNDأبلغ المشرف بأن واجهة المزود تغيرت؛ لا تكرّر الطلب بلا نهاية.

الملف القابل للقراءة آليًا متاح هنا: /openapi.json.