Über die Resumable Upload API kannst du große Dateien in die Graph API hochladen und unterbrochene Upload-Sitzungen fortsetzen, ohne dass du sie erneut von Beginn starten musst. Nach den Hochladen kannst du den Handle einer hochgeladenen Datei mit anderen Endpunkten der Graph API verwenden, die ihn unterstützen.
Beachte, dass die Resumable Upload API nicht die einzige Möglichkeit darstellt, Dateien hochzuladen. Viele Nodes verfügen über eine Edge, die das Hochladen unterstützt. Jedoch bieten die meisten keine Möglichkeit für die Verarbeitung großer Dateien oder das Fortsetzen einer unterbrochenen Upload-Sitzung.
Referenzen zu Endpunkten, die Handles hochgeladener Dateien unterstützen, zeigen an, ob Endpunkte Handles unterstützen, die von der Resumable Upload API zurückgegeben wurden.
Zum Hochladen von Dateien sind zwei Schritte erforderlich:
Bei Erfolg wird ein Datei-Handle zurückgegeben, den du dann mit anderen Endpunkten verwenden kannst, die von der Resumable Upload API zurückgegebene Datei-Handle unterstützen.
Sende eine POST
-Anfrage an den Application Uploads-Endpunkt ({app-id}/uploads
), die deine Datei beschreibt. Bei Erfolg wird eine Upload-Sitzungs-ID zurückgegeben, die du im nächsten Schritt verwenden kannst, um das Hochladen zu beginnen.
POST https://graph.facebook.com/{api-version}/{app-id}/uploads &file_length={file-length} &file_type={file-type} &access_token={access-token}
Parameterplatzhalter:
{api-version}
– Die Graph API-Version.{app-id}
– Die App-ID. Die hochgeladene Datei, die mit dieser App verknüpft wird. Der*die App-Nutzer*in muss über eine Administrations- oder Entwicklungsrolle in dieser App verfügen.file-length
– Die Dateigröße in Bytes. file-type
– Der MIME-Typ der Datei. Gültige Werte: application/pdf
, image/jpeg
, image/jpg
, image/png
und video/mp4
{access-token}
– Der Nutzer*innen-Zugriffsschlüssel des*der App-Nutzer*in.Eine vollständige Liste der verfügbaren Abfrageparameter und unterstützten Dateitypen findest du in der Referenz zum Application Uploads-Endpunkt.
{ "id": "{id}" }
Eigenschaftswerte der Antwort:
{id}
– Upload-Sitzungs-ID.
curl -X POST \
"https://graph.facebook.com/v19.0
/584544743160774/uploads?file_length=109981&file_type=image/png&access_token=EAAIT..."
{ "id": "upload:MTphd..." }
Starte die Upload-Sitzung, indem du eine POST
-Anfrage an die Host-Adresse der Graph API sendest. Hänge dabei die {id}
deiner Upload-Sitzung zusammen mit den unten angegebenen erforderlichen Header an. Bei Erfolg wird ein Datei-Handle, {h}
, zurückgegeben, den du dann mit jedem Endpunkt der Graph API verwenden kannst, der von der Resumable Upload API zurückgegebene Datei-Handle unterstützt.
Wenn die Upload-Sitzung länger dauert als erwartet oder unterbrochen wurde, befolge die Schritte, die im Abschnitt Unterbrechungen beschrieben sind.
POST https://graph.facebook.com/{api-version}/{upload-session-id} --header 'Authorization: OAuth {access-token}' --header 'file_offset: 0' --data-binary @{file-name}
Platzhalterwerte
{api-version}
– Die Graph API-Version.{upload-session-id}
– Die in Schritt 1 zurückgegebene ID der Upload-Sitzung.{access-token}
– Der Nutzer*innen-Zugriffsschlüssel des*der App-Nutzer*in. Der*die App-Nutzer*in muss über eine Rolle in der App verfügen, die in Schritt 1 anvisiert wurde.{file-name}
– Der Name der hochzuladenden Datei.Beziehe unbedingt den Zugriffsschlüssel in den Header ein, ansonsten wird deine Anfrage fehlschlagen.
{ "h": "{h}" }
Eigenschaftswerte der Antwort:
{h}
– Der Datei-Handle der hochgeladenen Datei.
curl -X POST \
"https://graph.facebook.com/v19.0
/upload:MTphd..." \
--header "Authorization: OAuth EAAIT..." \
--header "file_offset: 0" \
--data-binary @cats_are_jerks.png
{ "h": "2:c2FtcGxl..." }
Wenn du eine Upload-Sitzung gestartet hast, diese jedoch mehr Zeit beansprucht als erwartet oder unterbrochen wurde, sende eine GET
-Anfrage an die Host-Adresse der Graph API. Hänge dabei die ID deine Upload-Sitzung an. Die API gibt einen file_offset
-Wert zurück, den du verwenden kannst, um den Upload-Vorgang dort fortzusetzen, wo er unterbrochen wurde.
GET https://graph.facebook.com/{api-version}/{upload-session-id} ?access_token={access-token}
Platzhalterwerte:
{api-version}
– Die Graph API-Version.{upload-session-id}
– Die in Schritt 1: Sitzung erstellen zurückgegebene ID der Upload-Sitzung.{access-token}
– Der Nutzer*innen-Zugriffsschlüssel des*der App-Nutzer*in.{ "id": "{id}", "file_offset": {file-offset} }
Eigenschaftswerte der Antwort:
{id}
– Die Upload-Sitzungs-ID, die abgefragt wurde.{file-offset}
– Eine Ganzzahl, die angibt, wie viele Bytes erfolgreich hochgeladen wurden.Erfasse den file_offset
-Wert und wiederhole Schritt 2: Upload beginnen. Weise den Wert dabei dem entsprechenden file_offset
-Header zu. Hierdurch wird der Upload-Vorgang dort fortgesetzt, wo er unterbrochen wurde.
curl -X GET \
"https://graph.facebook.com/v19.0
/upload:MTphd...&access_token=EAAIT..." \
{ "id": "upload:MTphd", "file_offset": 5238 }