Zapiers Ein-Feld-Limit für Transloadit umgehen
Kürzlich fragte ein Kunde, wie viele Felder sich mit unserer Zapier-Integration übergeben lassen. Derzeit erlauben wir die Übergabe von nur einem Feld an eine Assembly, was in manchen Fällen einschränkend sein kann. Wir haben jedoch untersucht, wie sich diese Einschränkung umgehen lässt, und teilen unsere Lösung heute mit Ihnen.

Um mitzumachen, benötigen Sie:
- Einen Dropbox-Speicher
- Ein Zapier-Konto
- Ein Transloadit-Konto
In dieser Anleitung verwenden wir den Dropbox-Speicher, um Dateien zu importieren und zu exportieren. Wir bieten jedoch eine Fülle weiterer Exportoptionen, die Sie stattdessen nutzen können.
Dropbox
Bevor wir beginnen, stellen Sie bitte sicher, dass Sie ein Dropbox-Konto eingerichtet haben, und klicken Sie dann hier, um Ihre Dropbox-App einzurichten.

Die Screenshots zeigen die Dropbox- und Zapier-Oberflächen von 2021. Wählen Sie in Dropbox Scoped access und gewähren Sie nur Zugriff auf die Dateien, die Ihr Workflow benötigt. Die abgebildete Option Full Dropbox ist weitreichend; bevorzugen Sie App folder, wenn alle Eingaben und Ausgaben dort liegen können. Erstellen Sie die App und aktivieren Sie in ihren Berechtigungseinstellungen nur die erforderlichen Lese-/Schreib-Scopes.

Wechseln Sie zu Settings und erzeugen Sie im Abschnitt OAuth 2 Ihr Zugriffstoken; notieren Sie sich den angezeigten Wert. Ein generiertes Token eignet sich für einen kurzen Test, nicht für eine dauerhafte, unbeaufsichtigte Integration. Richten Sie für einen fortlaufenden Zap eine OAuth-Verbindung mit Refresh-Token-Unterstützung ein, bevor Sie ihn aktivieren. Siehe den Dropbox-OAuth-Leitfaden; veröffentlichen Sie Token niemals in Code oder Screenshots.

In Dropbox haben wir einen Ordner namens importFolder erstellt. Wenn neue Dateien in diesen
Ordner hochgeladen werden, erkennt Zapier die neue Datei automatisch und übergibt sie zur
Verarbeitung an Transloadit.

Außerdem haben wir einen Ordner für unsere Assembly-Ergebnisse erstellt, mit dem Namen exportFolder.
Mit dem Zugriff App folder legen Sie beide Ordner im
Dropbox-Ordner Ihrer App an, zum Beispiel /Apps/MyApp/importFolder und /Apps/MyApp/exportFolder. Die
Dropbox-API behandelt diesen App-Ordner als ihr Stammverzeichnis, daher benötigt Transloadit
/importFolder/image.jpg und nicht /Apps/MyApp/importFolder/image.jpg. Der Zapier-Abschnitt weiter unten
wandelt den Kontopfad des Triggers um. Mit dem Zugriff Full Dropbox
können beide Ordner im Stammverzeichnis Ihres Kontos liegen, und es ist keine Umwandlung nötig.
Siehe Dropbox' Hinweise zum API-Stammverzeichnis.

Transloadit
Aufseiten von Transloadit müssen wir zunächst unsere Template-Zugangsdaten einrichten.
Die folgenden Screenshots der Console zeigen die englische Oberfläche.
Gehen Sie zu Ihren Template-Zugangsdaten. Klicken Sie auf
Neue Zugangsdaten hinzufügen, wählen Sie Dropbox aus und geben Sie die erforderlichen
Informationen ein. Wir haben uns für den Namen TestWorkBox entschieden.

Jetzt können wir unser Template erstellen. Dieses Template importiert ein Bild aus unserer Dropbox, ändert dessen Größe und exportiert anschließend das Ergebnis unserer Assembly.
Kopieren und speichern Sie den folgenden JSON-Code als neues Template und notieren Sie sich dabei Ihre Template ID.
{
"steps": {
"imported": {
"robot": "/dropbox/import",
"path": "${fields.dropbox_file_path}",
"credentials": "TestWorkBox",
"result": true
},
"images": {
"use": "imported",
"robot": "/image/resize",
"format": "png",
"width": 500,
"height": 500,
"resize_strategy": "fit",
"imagemagick_stack": "v3"
},
"exported": {
"use": ["images"],
"robot": "/dropbox/store",
"credentials": "TestWorkBox",
"path": "exportFolder/resized_${fields.file_name}.${file.ext}"
}
}
}
Im Template oben übergeben wir an den Parameter credentials den Namen der zuvor
eingerichteten Dropbox-Zugangsdaten, TestWorkBox. In den Steps imported und exported verwenden wir die
Assembly Variables
${fields.dropbox_file_path} und ${fields.file_name} im Parameter path. Das sind die beiden
Felder, die wir mit Zapier manipulieren werden.
Bei Zapier
Jetzt sehen wir uns endlich Zapier an und wie wir die Ein-Feld-Beschränkung überwunden haben. Erstellen Sie einen neuen Zap, dessen Trigger Dropbox ist und dessen Trigger-Ereignis New File in Folder lautet.

Klicken Sie auf Continue und wählen Sie dann Ihr Dropbox-Konto aus.

Nun geben wir den Ordner an, aus dem unser Step für den Import die Dateien beziehen wird.
Dieser Wert muss mit unserem zuvor erstellten Ordner importFolder übereinstimmen. Bei
App-Ordner-Zugriff wählen Sie den Ordner innerhalb des Dropbox-Ordners der App aus, etwa
/Apps/MyApp/importFolder.

Klicken Sie auf Continue und dann auf Test Trigger. Wenn alles passt, sollten nach einigen Sekunden die Metadaten einer beliebigen Datei aus dem von Ihnen angegebenen Ordner erscheinen, was zeigt, dass Ihre Dropbox erfolgreich verknüpft wurde. Bevor wir auf Continue klicken, richten wir die mehreren Felder ein, die wir von Zapier an Transloadit übergeben.
Bei App-Ordner-Zugriff fügen Sie zunächst eine Aktion vom Typ
Code by Zapier mit
JavaScript hinzu. Ordnen Sie in
Input Data den Eingabeschlüssel file_path dem
Dateipfad des Dropbox-Triggers zu, nicht seiner Datei-ID oder seiner Download-URL. Setzen Sie
app_folder auf das App-Ordner-Präfix, das exakt aus diesem Pfad kopiert wurde,
einschließlich seiner Groß- und Kleinschreibung, aber ohne abschließenden Schrägstrich, etwa
/Apps/MyApp. Verwenden Sie diesen Code:
const path = inputData.file_path
const appFolder = inputData.app_folder
if (
typeof path !== 'string' ||
typeof appFolder !== 'string' ||
!appFolder.startsWith('/') ||
appFolder.endsWith('/') ||
!path.startsWith(`${appFolder}/`)
) {
throw new Error('Select a file inside the configured Dropbox app folder.')
}
return { dropbox_file_path: path.slice(appFolder.length) }
Testen Sie die Code-Aktion: /Apps/MyApp/importFolder/image.jpg sollte
dropbox_file_path mit /importFolder/image.jpg ergeben. Wenn der Trigger bereits
einen app-relativen Pfad zurückgibt, überspringen Sie diese Umwandlung. Bei Zugriff auf das gesamte
Konto überspringen Sie sie ebenfalls und verwenden den ursprünglichen Trigger-Pfad. Den aktuellen
Code-Editor beschreibt Zapiers JavaScript-Leitfaden.
Klicken Sie als Nächstes auf + und wählen Sie Format, wobei das Ereignis auf Utilities gesetzt wird.

Klicken Sie auf Continue und wählen Sie im Feld Transform die Option Line Itemizer (Create/Append/Prepend) aus. Im Abschnitt Line-Item Properties fügen wir die Feldnamen hinzu, die wir in unserem Template definiert haben, sowie die Werte, die wir übergeben möchten. Achten Sie darauf, dass beim Eingeben der Feldnamen kein Leerzeichen nach dem Komma steht. Zapier geht davon aus, dass das Leerzeichen Teil des Feldnamens ist. Wählen Sie außerdem die Feldwerte in der Reihenfolge der Feldnamen aus.
Ordnen Sie dropbox_file_path der normalisierten Code-Ausgabe zu, wenn dieser Schritt
erforderlich ist, andernfalls dem ursprünglichen Pfad aus dem Dropbox-Trigger. Ordnen Sie
file_name dem Dateinamen des Triggers zu. Der Exportpfad in unserem Template
ist bereits relativ zum Stammverzeichnis der Zugangsdaten, belassen Sie ihn daher unverändert.

Klicken Sie auf Continue und dann auf Test & Review, und Sie sehen den Feldnamen mit dem zugehörigen Feldwert. Klicken Sie noch einmal auf Continue, damit wir nun die Aktion einrichten können.
Als Aktions-App wählen wir Transloadit mit dem Aktionsereignis Create Assembly.

Klicken Sie wie zuvor auf Continue und verknüpfen Sie Ihr Transloadit-Konto.

Jetzt können wir die verschiedenen zuvor erstellten Felder einsetzen. Tragen Sie Ihre gespeicherte Template ID in das Feld Template ein. Wählen Sie für Assembly Field Name den Wert Output Line Item(s) Field Name aus dem Formatter. Wählen Sie für Assembly Field Value den Wert Output Line Item(s) Field Value. Die Template ID gehört in keine der beiden Assembly-Feldeingaben.

Klicken Sie ein letztes Mal auf Continue und Test & Review. Dadurch wird eine neue Assembly erstellt und die zugehörigen Assembly-Daten werden auf Ihrem Bildschirm angezeigt.
Nachdem wir unseren Zap fertig erstellt haben, können wir ihn ausführen. Sobald eine neue Datei in
unseren Ordner importFolder hochgeladen wird, wird der Zap innerhalb weniger Minuten ausgelöst und
dadurch eine Assembly erstellt.
Ergebnisse
Sobald der Zap ausgelöst wurde, besuchen Sie den Bereich Assemblies in Ihrer Konsole, um die Ergebnisse anzusehen.


Wenn Sie ein Beispiel für die Umsetzung sehen möchten, werfen Sie einen Blick auf den Blog (English) meines Kollegen Joseph. Sein Blog zeigt, wie Sie die mehreren Felder nutzen können, um automatisch Musikvorschauen von Spotify zu erzeugen. Das war es für heute! Wenn Sie diese einfachen Schritte befolgen, sollten Ihre Zaps reibungslos funktionieren und genauso wie zuvor, bevor Sie wussten, wie sich die Ein-Feld-Beschränkung überwinden lässt.
