Zum Inhalt springen

Schnellstart

Website-Screenshots in Node.js

Erstellen Sie mit fetch einen Screenshot über eine einzige HTTPS-Anfrage, ohne eine Browser-Infrastruktur betreiben zu müssen.

Ironfang Render bietet eine gewöhnliche HTTPS-API, daher kann Node.js sie mit fetch aufrufen, ganz ohne SDK. Eine erfolgreiche Anfrage liefert die Bildbytes direkt zurück, bereit zum Schreiben in eine Datei.

Einen Schlüssel erstellen

Erstellen Sie im Portal einen API-Schlüssel. Das Geheimnis wird einmal angezeigt und als Hash gespeichert. Legen Sie es in einer Umgebungsvariablen namens IRONFANG_API_KEY ab statt in der Quelldatei; das Beispiel unten liest es von dort.

export IRONFANG_API_KEY="if_live_..."

Einen Screenshot erstellen

import { writeFile } from 'node:fs/promises';

const key = process.env.IRONFANG_API_KEY;
if (!key) throw new Error('Set IRONFANG_API_KEY to your Ironfang API key.');

const resp = await fetch('https://api.ironfang.uk/render/v1/screenshot', {
    method: 'POST',
    headers: {
        Authorization: `Bearer ${key}`,
        'Content-Type': 'application/json',
    },
    body: JSON.stringify({ url: 'https://example.com', width: 1280 }),
});

if (!resp.ok) {
    const { error } = await resp.json();
    throw new Error(`${resp.status} ${error.code}: ${error.message}`);
}

await writeFile('shot.png', Buffer.from(await resp.arrayBuffer()));

Führen Sie es aus, und der Screenshot wird als shot.png im aktuellen Verzeichnis gespeichert:

node shot.mjs

Fehlerbehandlung

Erfolgreiche Render-Antworten sind binär. Fehler kommen als JSON in der Form {"error": {"code", "message"}}. Ein fehlender oder unbekannter Schlüssel ergibt 401 invalid_api_key. Ein Schlüssel ohne die Berechtigung render:render ergibt 403 insufficient_scope.

// fetch does not throw for 4xx or 5xx responses. Check resp.ok
// before writing the response body to an image file.

PDFs und Vorlagen

Derselbe Aufruf funktioniert für PDFs unter /render/v1/pdf und für Bilder aus Vorlagen unter /render/v1/image/{id}. Nur der Pfad und der Body ändern sich.

Weiterlesen