الأساسيات
تعمل الواجهة داخل تطبيق سطح المكتب على العنوان http://127.0.0.1:7777 ولا تقبل الاتصالات إلا من جهازك. انسخ مفتاح API من صفحة «Automation API» في التطبيق وأرسله مع كل طلب، في إحدى هذه الترويسات:
Authorization: Bearer YOUR_API_KEY
X-Morpho-Token: YOUR_API_KEY
نقاط النهاية
| الطريقة | المسار | الوظيفة |
|---|---|---|
GET | /api/v1/profiles | يعرض ملفات التعريف: المعرّف والاسم والمحرك وما إذا كان مفتوحًا. |
POST | /api/v1/profiles/{id}/start | يشغّل ملف التعريف ويعيد قيمة ws_endpoint الخاصة به. ينتظر حتى ?timeout=60 ثانية، وبحد أقصى 180. |
GET | /api/v1/profiles/{id} | يعرض الحالة، مع عنوان الاتصال عندما يكون ملف التعريف مفتوحًا. |
POST | /api/v1/profiles/{id}/stop | يغلق ملف التعريف. |
تشغيل ملف تعريف باستخدام curl
curl -X POST -H "Authorization: Bearer $MORPHO_KEY" \
"http://127.0.0.1:7777/api/v1/profiles/PROFILE_ID/start?timeout=60"
# -> {"ws_endpoint": "ws://127.0.0.1:<port>/devtools/browser/...", ...}
الاتصال عبر Playwright (Python)
import requests
from playwright.sync_api import sync_playwright
API = "http://127.0.0.1:7777/api/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
ws = requests.post(f"{API}/profiles/PROFILE_ID/start", headers=HEADERS,
params={"timeout": 60}).json()["ws_endpoint"]
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(ws)
context = browser.contexts[0] # the profile's own context
page = context.new_page()
page.goto("https://example.com")
print(page.title())
requests.post(f"{API}/profiles/PROFILE_ID/stop", headers=HEADERS)
الاتصال عبر Puppeteer (Node.js)
import puppeteer from "puppeteer-core";
const API = "http://127.0.0.1:7777/api/v1";
const headers = { Authorization: "Bearer YOUR_API_KEY" };
const res = await fetch(`${API}/profiles/PROFILE_ID/start?timeout=60`, { method: "POST", headers });
const { ws_endpoint } = await res.json();
const browser = await puppeteer.connect({ browserWSEndpoint: ws_endpoint });
const page = await browser.newPage();
await page.goto("https://example.com");
console.log(await page.title());
browser.disconnect(); // leaves the profile running; stop it with POST .../stop
ملاحظات
- ملفات تعريف Chromium وحدها تُعيد نقطة اتصال DevTools.
- يحتفظ ملف التعريف ببصمته والبروكسي الخاص به أثناء تحكّم سكربتك به.
- مع Selenium، اربط ChromeDriver بالمضيف والمنفذ الواردين في ws_endpoint (debuggerAddress).
- يمكنك استبدال مفتاح API في التطبيق في أي وقت؛ ويتوقف المفتاح القديم عن العمل فورًا.