Langsung ke isi

Berlaku untuk Cowork 0.1.45 · Untuk semua pengguna Cowork

Lihat Markdown

Permintaan Situs ​

Belum dirilis

Memungkinkan tugas latar belakang memanggil API sebuah situs web dengan login dari tab Cowork di situs itu. Jika belum ada tab yang terbuka di sana, Cowork membukanya di latar belakang. Cowork mengirim permintaan dari tab tersebut; tidak ada cookie, token, atau header yang pernah sampai ke Extension. Hanya situs, method, dan path yang tercantum di dozin.sites yang diizinkan.

dozin.sites ​

FieldTipeWajibDeskripsi
hoststringYaNama host huruf kecil, tanpa skema, port, atau path
methodsstring[]YaSatu atau lebih dari GET, POST, PUT, PATCH, DELETE
pathPrefixesstring[]Ya1–16 path yang harus menjadi awal permintaan
minIntervalMsnumberTidakJeda minimum antara dua permintaan ke host ini; default 1000, paling banyak 60000

ctx.site.request(request) Belum dirilis ​

NamaTipeWajibDeskripsi
request.hoststringYaSebuah host dari dozin.sites
request.methodstringTidakDefault GET
request.pathstringYaDiawali / dan salah satu pathPrefixes; tanpa ?, #, ..
request.queryRecord<string, string | number | boolean>TidakSatu nilai per key
request.bodyunknownTidakBody JSON; tidak diizinkan dengan GET

Nilai kembalian ​

Promise<{ status: number, contentType: string | null, body: unknown }>. body berupa JSON hasil parse jika responsnya JSON.

Error ​

Promise di-reject dengan error yang code-nya:

codeArti
NEED_LOGINCowork tidak bisa membuka tab di situs itu, atau situs menjawab bahwa pengguna belum login
SITE_NOT_ALLOWEDHost, method, atau path tidak ada di dozin.sites
RATE_LIMITEDSitus menjawab 429
NETWORK_ERRORPermintaan tidak sampai ke situs
BAD_REQUESTQuery atau body tidak valid, body dengan GET, atau argumen yang tidak bisa dikirim ke Cowork
RUN_ENDEDRun yang melakukan panggilan sudah berakhir

ctx.site.session(host) Belum dirilis ​

Memberi tahu apakah pengguna tampaknya sudah login di situs itu.

NamaTipeWajibDeskripsi
hoststringYaSebuah host dari dozin.sites

Mengembalikan Promise<{ loggedIn: boolean | null }>: hasil permintaan terakhir ke situs itu jika ada; jika tidak, null saat ada tab terbuka di situs itu (Cowork belum bisa memastikannya) dan false saat tidak ada.

Contoh ​

js
const { loggedIn } = await ctx.site.session('welladjustedhk.janeapp.com');
if (loggedIn === false) return ctx.status('Please log in to Jane', 'warn');
try {
  const res = await ctx.site.request({ host: 'welladjustedhk.janeapp.com', path: '/admin/api/v2/locations' });
  ctx.status(`OK · HTTP ${res.status}`);
} catch (error) {
  ctx.status(error.code === 'NEED_LOGIN' ? 'Please log in to Jane' : `Error: ${error.code}`, 'error');
}

Terkait ​

Untuk Micromeet Cowork 0.1.41 · build 261111110020