Erste Schritte

In diesem Tutorial erfährst du, wie du mit der Video API ein Video auf einer Seite erstellen kannst. Voraussetzung für das Tutorial ist, dass du einfache cURL-Anfragen mit einem Befehlszeilentool wie Terminal oder einer entsprechenden App wie Postman durchführen kannst und grundlegende Kenntnisse des Graph API Explorer hast.

Bevor du beginnst

Voraussetzungen:

  • Eine vorhandene Facebook-App. Wenn du keine Facebook-App hast, rufe Facebook for Developers auf, klicke auf Meine Apps und erstelle eine App.
  • Ein Video mit 10 bis 20 MB, das du in Chunks zu 5 MB aufgeteilt hast. Alle Chunks müssen im gleichen Verzeichnis gespeichert sein.
  • Eine Seite, für die du CREATE_CONTENT-Aufgaben ausführen kannst.
  • Zugriff auf ein Befehlszeilentool (wie Terminal) oder eine App (wie Postman) zum Durchführen von cURL-Anfragen.

Schritt 1: Nutzer-Zugriffsschlüssel abrufen

Grundsätzlich musst du Facebook Login in deine App integrieren und zum Abrufen von Zugriffsschlüsseln von deinen App-Nutzer*innen verwenden. Im Rahmen dieses Tutorials kannst du jedoch den Graph API Explorer verwenden, da hier bereits Facebook Login integriert ist und du somit einfach Schlüssel für alle deine Apps generieren kannst.

  1. Lade den Graph API Explorer und wähle im Dropdown-Menü Facebook-App deine App aus.

  2. Wähle im Dropdown-Menü Benutzer oder Seite die Option Nutzer-Zugriffsschlüssel abrufen aus, fahre als du selbst fort und authentifiziere dich. Wenn du eine ältere App erneut nutzt, bist du möglicherweise bereits authentifiziert.

  3. Verwende im Bereich Berechtigungen das Suchfeld Berechtigung hinzufügen, um nach den folgenden Berechtigungen zu suchen und sie auszuwählen: pages_manage_engagement und pages_read_user_content.
  4. Klicke auf Zugriffsschlüssel generieren.
  5. Fahre im angezeigten modalen Fenster als du selbst fort und wähle die Seite aus, auf die du dein Video letztendlich hochladen möchtest.
  6. Rufe mit Weiter die nächsten Bildschirme auf, bis du das Fenster schließt. Damit erteilst du deiner App die ausgewählten Berechtigungen und generierst außerdem einen Nutzer-Zugriffsschlüssel.
  7. Optional. Klicke auf das blaue Infosymbol, um zu bestätigen, dass du deiner App die richtigen Berechtigungen (Bereiche) gewährt hast.

Schritt 2: Seiten-ID und zugehörigen Schlüssel abrufen

  1. Sende mit dem Graph API Explorer eine Anfrage an die GET /me/accounts-Edge. Damit forderst du deinen Nutzer an und gibst alle Seiten zurück, auf die du deiner App im letzten Schritt Zugriff gewährt hast.
  2. Identifiziere deine Seite in der Antwort und kopiere die dazugehörige ID (id) und den Seiten-Zugriffsschlüssel (access_token).
  3. {
      "data": [
        {
          "access_token": "EBACf...",  //Copy your Page Access Token
          "category": "Media",
          "category_list": [
            {
              "id": "163003840417682",
              "name": "Media"
            }
          ],
          "name": "Metricsaurus",
          "id": "1755847768034402",  //Copy your Page ID
          "tasks": [
            "ANALYZE",
            "ADVERTISE",
            "MODERATE",
            "CREATE_CONTENT",
            "MANAGE"
          ]
        }
      ],
      "paging": {
        "cursors": {
          "before": "MTc1NTg0Nzc2ODAzNDQwMgZDZD",
          "after": "MTc1NTg0Nzc2ODAzNDQwMgZDZD"
        }
      }
    }
    

Schritt 3: Videositzung erstellen

  1. Navigiere im Befehlszeilentool zu dem Ordner mit deinen Video-Chunks. Sende dann eine cURL-Anfrage an die POST /page-id/videos-Edge auf dem Host graph-video.facebook.com. Wenn du Postman verwendest, nimm die Abfrage-Parameterschlüssel und -werte als form-data in den Text der Anfrage auf.

  2. Beispielanfrage
    curl -X POST \
      "https://graph-video.facebook.com/1755847768034402/videos" \
      -F "access_token=EBACf..." \
      -F "upload_phase=start" \
      -F "file_size=77188035"
    
  3. Ersetze die Seiten-ID (1755847768034402) im Anfragepfad durch die ID deiner Seite, lege access_token auf den Seiten-Zugriffsschlüssel fest, den du soeben kopiert hast, und file_size auf die Gesamtgröße der Videodatei (in Bytes).

  4. Die API gibt eine Videositzung zurück:
    {
      "video_id": "225467151853466",
      "start_offset": "0",
      "end_offset": "1048576",
      "upload_session_id": "225467155186799"
    }
    
  5. Kopiere alle zurückgegebenen Werte mit Ausnahme von end_offset.

Schritt 4: Ersten Video-Chunk hochladen

Sende eine weitere Anfrage an die POST /{page-id}/videos-Edge und schließe deine upload_session_id und den Namen deines ersten Video-Chunks ein.

Beispielanfrage

curl -X POST \
  "https://graph-video.facebook.com/1755847768034402/videos" \
  -F "access_token=EBACf..." \
  -F "upload_phase=transfer" \
  -F "start_offset=0" \
  -F "upload_session_id=225467155186799" \
  -F "video_file_chunk=@xaa"

Wenn du cURL verwendest, füge das @-Symbol vor deinem Dateinamen ein.

Wenn du mit Postman arbeitest, lass das @-Symbol weg, lege video_file_chunk auf Datei fest (fahre mit der Maus über die Zeile, um das Dropdown-Menü aufzurufen) und wähle die erste Chunk-Datei manuell aus.

Die API antwortet mit einem neuen start_offset. Notiere den neuen Wert.

{
  "start_offset": "10485760",
  "end_offset": "15728640"
}

Schritt 5: Verbleibende Video-Chunks hochladen

  1. Führe dieselbe Anfrage aus, aber lege start_offset auf den neuen start_offset-Wert fest, der in der vorherigen Antwort zurückgegeben wurde. Lege außerdem video_file_chunk auf den Namen des nächsten Video-Chunks in der Reihenfolge fest.
  2. curl -X POST \
      "https://graph-video.facebook.com/1755847768034402/videos" \
      -F "access_token=EBACf..." \
      -F "upload_phase=transfer" \
      -F "start_offset=10485760" \
      -F "upload_session_id=225467155186799" \
      -F "video_file_chunk=@xab"
    
    Die API antwortet erneut mit einem neuen start_offset-Wert, den du zum Hochladen des nächsten Chunks in der Reihenfolge verwenden kannst.
    {
      "start_offset":"15728640",
      "end_offset":"20971520"
    }
    
  3. Wiederhole diesen Schritt, bis alle verbleibenden Video-Chunks in der richtigen Reihenfolge hochgeladen wurden. Das Programm, das du zum Teilen deiner Videodatei in Chunks verwendest, sollte auch deine Chunks in der richtigen Reihenfolge benennen.

Schritt 6: Upload-Sitzung beenden

Nachdem du den letzten Chunk hochgeladen hast, beendest du die Upload-Sitzung, indem du eine letzte Anfrage an denselben Endpunkt sendest und upload_phase auf „finish“ festlegst.

Beispielanfrage

curl -X POST \
  "https://graph-video.facebook.com/1755847768034402/videos"  \
  -F "access_token=EBACf..." \
  -F "upload_phase=finish" \
  -F "upload_session_id=225467155186799"

War der Vorgang erfolgreich, beendet die API die Upload-Sitzung und antwortet mit true.

{
  "success": true
}

Wir setzen dein Video zusammen und kodieren es. Der Kodiervorgang kann abhängig von der Gesamtgröße der Videodatei mehrere Minuten in Anspruch nehmen.