> This page is for Kamera zu Cloud.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://next.developer.frame.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://next.developer.frame.io/_mcp/server.

# Integrationsarchitektur

## Einführung





Bevor wir mit der Erstellung von API-Anfragen beginnen, müssen Sie die grundlegende Architektur von C2C-Integrationen kennen.(Keine Sorge – im nächsten Artikel werden Sie im Terminal arbeiten.Im Moment wollen wir uns mit diesen grundlegenden Konzepten befassen.)





Das vereinfachte Datenmodell für Ihre Integration sieht etwa folgendermaßen aus:





```text
                                   ┌───────────────────┐    ┌─────────┐
                                   │ Project Device 01 │ -> │ Project │
┌───────────┐    ┌──────────────┐  └───────────────────┘    └─────────┘
│ Oauth App │ -> │ Device Model │ ──────────⭥
└───────────┘    └──────────────┘  ┌───────────────────┐    ┌─────────┐
                                   │ Project Device 02 │ -> │ Project │
                                   └───────────────────┘    └─────────┘
```





## OAuth-Apps

Ihre Integration wird durch eine OAuth-App definiert, eine bei unserem Backend registrierte Instanz, die es Ihren Geräten ermöglicht, sich mithilfe von [OAuth 2](https://oauth.net/2/) bei Frame.io zu authentifizieren.Ihre OAuth-App definiert die Autorisierungsstrategie für Ihre gesamte Integration.Jedes Gerät, das Ihre Benutzenden mit Frame.io verbinden, wird über dieselbe OAuth-App autorisiert (Integratoren mit mehreren Gerätezeilen benötigen jedoch möglicherweise jeweils eine OAuth-App).

Für C2C-Integrationen verwenden wir einen speziellen OAuth-Workflow, der speziell für Geräte mit eingeschränkten UI-Funktionen entwickelt wurde.





### C2C-Geräteauthentifizierung





Die C2C-API wurde für Geräte mit eingeschränkten UI-Funktionen entwickelt.Diese Geräte ermöglichen es Benutzenden, sich mit Frame.io zu verbinden, indem ein 6-stelliger Code angezeigt wird, den der Benutzende dann über seinen eigenen Browser auf der Frame.io-Website eingibt.

Geräte erhalten ein `client_secret`, das an unser Backend bereitgestellt werden muss, um einen 6-stelligen Autorisierungscode zu erhalten.Dieser optimierte Ansatz sorgt für eine konsistente und sichere Authentifizierung über alle C2C-Integrationen hinweg.

## Gerätemodelle





Das Gerätemodell konfiguriert, wie sich Ihr Gerät bei der Interaktion mit dem C2C-Backend verhält, einschließlich der unterstützten Funktionen.Die folgenden Einstellungen werden vom Gerätemodell konfiguriert:




<CardGroup cols={2}>
  
  
<Card icon="plug" title="Socket-Status">
  
  

Ob die Integration zur Übermittlung ihres aktuellen Status Sockets mit geringer Latenz oder REST-Aufrufe mit höherer Latenz verwendet.



</Card>

<Card icon="folder" title="Pfadname">
  
    

Der Name Ihrer Integration, wie er im Pfad jedes hochgeladenen Assets angezeigt werden soll.


  
</Card>

<Card icon="code" title="Tokenisierter Dateipfad">
  
    

C2C erlaubt das Hochladen von Assets nur in bestimmte Stammverzeichnisse. Abgesehen von dieser Anforderung kann Ihr Gerät jedoch so konfiguriert werden, dass Assets in einen dynamisch berechneten Dateipfad hochgeladen werden, der auf den bereitgestellten Metadaten des Assets basiert.


  
</Card>

<Card icon="list" title="Erforderliche Metadaten">
  
    

Welche Metadaten erforderlich sind, wenn Sie ein Asset in Frame.io hochladen, insbesondere zur Unterstützung des tokenisierten Dateipfads.


  
</Card>

</CardGroup>

<Card icon="plug" title="Socket-Status">
  
  

Ob die Integration zur Übermittlung ihres aktuellen Status Sockets mit geringer Latenz oder REST-Aufrufe mit höherer Latenz verwendet.



</Card>


Die von Ihrem Gerät unterstützten Funktionen können sich über verschiedene Firmware-Versionen hinweg ändern.Um Abwärtskompatibilität und ein sauberes Benutzererlebnis zu ermöglichen, wird die Konfiguration für Ihr Gerät dynamisch basierend auf der erkannten Firmware-Version ausgewählt.In naher Zukunft wird eine Integration mehr als ein Gerätemodell haben.Welches Gerätemodell verwendet wird, wird durch einen Vergleich der Firmware-Version des Geräts mit der Mindestanforderung an die Firmware-Version für ein bestimmtes Gerätemodell ermittelt.





## Projektgeräte und Kennzeichnung

Das `ProjectDevice` stellt jede physische Instanz eines Geräts dar, das mit Frame.io verbunden ist.Ein `ProjectDevice` identifiziert sich anhand eines eindeutigen Identifikationswerts namens `client_id`.Dieser Wert sollte so gewählt werden, dass er garantiert nicht von zwei Geräten gemeinsam genutzt wird.Es kann sich um die Seriennummer eines Geräts handeln oder um eine zufällige Zeichenfolge, die das Gerät einmalig generiert und gespeichert hat.Die `client_id` sollte KEIN Wert sein, über den Ihr Gerät nicht verfügt, wie beispielsweise die MAC-Adresse eines Computers.

Unser Backend erfasst jedes Projektgerät und speichert Informationen dazu, wie beispielsweise die aktuelle Firmware-Version.

Jedem `ProjectDevice` ist ein bestimmtes Frame.io-`Project` und eine `OauthAuthorization` zugeordnet, die dem Gerät Zugriff auf das Projekt gewährt, sowie eine Reihe von Gültigkeitsbereichen, die genau beschreiben, was ein Gerät tun darf.Weitere Informationen zu den verfügbaren Gültigkeitsbereichen finden Sie in den detaillierten Leitfäden zur Implementierung von Authentifizierung und Autorisierung.Das `ProjectDevice` wird vom `/me-`-Endpunkt zurückgegeben.Ein `Device` kann jeweils nur mit einem einzelnen `ProjectDevice` und somit gleichzeitig nur mit einem einzelnen `Project` verknüpft werden.

## Firmware-Versionen

Ihr Gerät muss bei jedem Aufruf eines Endpunkts unter `https://api.frame.io` die aktuelle Firmware-Version im HTTP-Header `x-client-version` angeben.Spätere API-Leitfäden enthalten diesen Header in jedem Beispiel.In einigen Fällen muss unser Backend mehrere Firmware-Versionen sortieren. Um dies zu unterstützen, MÜSSEN die Werte eine gültige [semantische Version](https://semver.org/) sein.Dazu gehören (unter anderem) Werte wie `0.1.2`, `2.1.3-preview.01` und `2.1.3-preview.01+build_19770504.01`.

Es wird ein Fehler zurückgegeben, wenn die Werte der Firmware-Version keine gültigen semantischen Versionen sind.Uns ist bewusst, dass nicht alle Integrationen ihre Firmware nach dem Prinzip der semantischen Versionierung verwalten. In solchen Fällen bitten wir Sie, für jede von Ihnen erstellte interne Version eine semantische Versionsnummer zu vergeben und diese an unser Backend zu übermitteln.





Durch die Bereitstellung des Headers können verschiedene Versionen Ihrer Firmware unterschiedliche (und manchmal miteinander in Konflikt stehende) Funktionen innerhalb von Frame.io unterstützen.




<Info title="Header-Host">
  


Die Firmware-Version wird nur bei Aufrufen von https://api.frame.io berücksichtigt; bei Aufrufen von https://applications.frame.io hat der Header keine Auswirkung.



</Info>

<Info title="Aktuelle Anforderung">
  Die `x-client-version` ist jetzt ein erforderlicher HTTP-Header und wird von den Servern von Frame durchgesetzt.
</Info>


## Nächste Schritte

Es ist Zeit für API-Aufrufe.Erfahren Sie, wie Sie sich mit C2C authentifizieren und autorisieren können.Folgen Sie dem [Leitfaden zur Einrichtung](./implementing-c2c-setting-up), um zu beginnen.