Ereignisabonnement-API
Wenn eine Aktion auf einem Adobe Workfront-Objekt erfolgt, das von Ereignisabonnements unterstützt wird, können Sie Workfront so konfigurieren, dass eine Antwort an den gewünschten Endpunkt gesendet wird. Das bedeutet, dass Anwendungen von Drittanbietern Aktualisierungen von Workfront-Interaktionen über die Workfront-API erhalten können, sobald sie auftreten. Im Allgemeinen erhalten Sie in weniger als 5 Sekunden nach der Protokollierung der Datenänderung Webhook-Benachrichtigungen. Kunden erhalten im Durchschnitt Webhook-Benachrichtigungen in weniger als einer Sekunde, nachdem die Datenänderung protokolliert wurde.
Um Payloads von Ereignisanmeldungen über Ihre Firewall zu erhalten, müssen Sie die folgenden IP-Adressen zu Ihrer Zulassungsliste hinzufügen:
Für Kunden in Europa:
- 52.30.133.50
- 52.208.159.124
- 54.220.93.204
- 52.17.130.201
- 34.254.76.122
- 34.252.250.191
Für Kunden an anderen Standorten als Europa:
- 54.244.142.219
- 44.241.82.96
- 52.36.154.34
- 34.211.224.9
- 54.218.48.56
- 52.39.217.230
Die folgenden Themen unterstützen die API für die Ereignisanmeldung:
Von Ereignisanmeldungen unterstützte Objekte
Die folgenden Workfront-Objekte werden von Ereignisabonnements unterstützt.
- Zuweisung
- Firma
- Dashboard
- Dokument
- Ausgabe
- Feld
- Stunde
- Problem
- Notiz
- Portfolio
- Programm
- Projekt
- Datensatz
- Eintragstyp
- Bericht
- Aufgabe
- Vorlage
- Arbeitszeittabelle
- Benutzerin oder Benutzer
- Arbeitsbereich
Eine Liste der Felder, die von Ereignisabonnementobjekten unterstützt werden, finden Sie unter Ressourcen-Felder für Ereignisabonnements.
Ereignisabonnement-Authentifizierung
Um ein Ereignisabonnement zu erstellen, abzufragen oder zu löschen, benötigt Ihr Workfront-Benutzer Folgendes:
-
Für die Verwendung von Ereignisanmeldungen ist eine Zugriffsstufe von "Systemadministrator"erforderlich.
-
A
sessionID
-Kopfzeile ist erforderlich, um die API für Ereignisabonnements zu verwendenWeitere Informationen finden Sie unter Authentifizierung in API-Grundlagen.
Erstellen der Abonnement-Ressource
Die Abonnement-Ressource enthält die folgenden Felder.
-
objId (optional)
- Zeichenfolge - Die ID des Objekts des angegebenen objCode, für das Ereignisse ausgelöst werden. Wenn dieses Feld nicht angegeben ist, erhält der Benutzer Ereignisse für alle Objekte des angegebenen Typs.
-
objCode (erforderlich)
-
Zeichenfolge - Der objCode des Objekts, für das Änderungen abonniert werden. Die möglichen Werte für "objCode"sind in der folgenden Tabelle aufgeführt.
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 11-row-2 12-row-2 13-row-2 14-row-2 15-row-2 16-row-2 17-row-2 18-row-2 19-row-2 20-row-2 layout-auto Objekt objCode Zuweisung ASSGN Firma CMPY Dashboard PTLTAB Dokument DOCU Ausgabe EXPNS Feld FELD Stunde HOUR Problem OPTASK Notiz NOTIZ Portfolio PORT Programm PRGM Projekt PROJ Datensatz AUFZEICHNUNG Eintragstyp RECORD_TYPE Bericht PTLSEC Aufgabe AUFGABE Vorlage TMPL Arbeitszeittabelle TSHET Benutzerin oder Benutzer BENUTZER Arbeitsbereich ARBEITSBEREICH
-
-
eventType (erforderlich)
-
Zeichenfolge - Ein Wert, der den Ereignistyp darstellt, für den das Objekt angemeldet ist. Zu den verfügbaren Ereignistypen gehören:
- ERSTELLEN
- LÖSCHEN
- AKTUALISIEREN
-
-
url (erforderlich)
- Zeichenfolge - Die URL des Endpunkts, an den Payloads von Abonnementereignissen über HTTP gesendet werden.
-
authToken (erforderlich)
- Zeichenfolge - Das OAuth2-Träger-Token, das zur Authentifizierung mit der im Feld "URL"angegebenen URL verwendet wird.
Erstellen von API-Anfragen für Ereignisabonnements
Nachdem Sie sichergestellt haben, dass der Benutzer Administratorzugriff hat und die Abonnement-Ressource gebildet wurde, können Sie Ereignisabonnements erstellen.
Verwenden Sie die folgende Syntax, um die URL zu erstellen.
Anforderungs-URL:
POST https://<HOSTNAME>/attask/eventsubscription/api/v1/subscriptions
Anforderungsheader:
Beispiel für Anfrageinhalt:
{
"objCode": "PROJ",
"eventType": "UPDATE",
"url": "http://requestb.in/ua5hi2ua",
"authToken": "EauthTokenWorkfrontRocks1234_"
}
Wenn Sie eine Abonnement-Ressource als Text einer Anfrage übergeben (der Inhaltstyp lautet "application/json"), wird ein Ereignisabonnement für das angegebene Objekt erstellt. Der Antwortcode 201 (Erstellt) zeigt an, dass das Abonnement erstellt wurde. Ein anderer Antwort-Code als 201 bedeutet, dass das Abonnement NOT erstellt.
Beispiel für Antwortheader:
→0
→Wed, 05 Apr 2017 21:23:33 GMT
→https://<HOSTNAME>/attask/eventsubscription/api/v1/subscriptions/750a636c-5628-48f5-ba26-26b7ce537ac2
→Apache-Coyote/1.1
Abfrage von Ereignisanmeldungen
Verwenden Sie beim Abfragen von Workfronts HTTP die GET-Methode. Es gibt zwei Möglichkeiten, um nach Abonnements für Ereignisse zu suchen: Abfrage nach Anmelde-ID (siehe unten) oder Abfrage aller Ereignisabonnationen.
Abonnements für alle Ereignisse abfragen
Sie können alle Abonnements für Ereignisse eines Kunden abfragen oder die Antwort mit den folgenden Optionen verwalten. Sie können auch die folgenden Optionen verwenden, um die Antwort zu verwalten:
- page: Abfrageparameter-Option, um die Anzahl der zurückzugebenden Seiten anzugeben. Der Standardwert ist 1.
- limit: Abfrageparameter-Option, um die Anzahl der pro Seite zurückzugebenden Ergebnisse anzugeben. Der Standardwert ist 100 mit einer maximalen Anzahl von 1000.
Die Anforderungssyntax für die Auflistung aller Ereignisanmeldungen für einen bestimmten Kunden lautet wie folgt:
Anforderungs-URL:
GET https://<HOSTNAME>/attask/eventsubscription/api/v1/subscriptions
Anforderungsheader:
Antwortcodes:
Beispiel für Antwortheader:
→application/json;charset=UTF-8
→Wed, 05 Apr 2017 21:29:32 GMT
→Apache-Coyote/1.1
→chunked
Beispiel für den Antworttext:
{
"subscriptions":
[
{
"id": "37c4bcf5-e0b5-4256-aba3-a51cba7bf997",
"customerId": "504f9640000013401be513579fbebffa",
"objId": "ObjId1234",
"objCode": "TASK",
"url": "http://test.test.net/test/1234",
"eventType": "UPDATE",
"authToken": "auth_token"
},
{
"id": "750a636c-5628-48f5-ba26-26b7ce537ac2",
"customerId": "504f9640000013401be513579fbebffa",
"objId": null,
"objCode": "PROJ",
"url": "http://requestb.in/ua5hi2ua",
"eventType": "UPDATE",
"authToken": "authTokenWorkfrontRocks1234_"
}
],
"meta":
{
"page": 1,
"page_count": 2,
"limit": 100,
"total_count": 150
}
}
Wo
- page und limit sind die in der Anfrage angegebenen Werte oder der Standardwert, wenn keine Werte angegeben werden
- page_count ist die Gesamtanzahl der Seiten, die abgefragt werden können.
- total_count die Gesamtzahl der Anmeldungen, die mit der Abfrage übereinstimmen.
Abfrage nach Ereignisabonnement-ID
Sie können nach Ereignisabonnements anhand der ID des Ereignisabonnements abfragen. Die Anforderungssyntax für die Auflistung von Ereignisanmeldungen lautet wie folgt:
Anforderungs-URL:
GET https://<HOSTNAME>/attask/eventsubscription/api/v1/subscriptions/<SUBSCRIPTION ID>
Anforderungsheader:
Antwortcodes:
Beispiel für den Antworttext:
{
"id": "750a636c-5628-48f5-ba26-26b7ce537ac2",
"customerId": "504f9640000013401be513579fbebffa",
"objId": null,
"objCode": "PROJ",
"url": "http://requestb.in/ua5hi2ua",
"eventType": "UPDATE",
"authToken": "authTokenWorkfrontRocks1234_"
}
Filter für Ereignisabschlüsse
Die Filterung der Ereignisabonnements kann verwendet werden, um sicherzustellen, dass Sie nur relevante Nachrichten erhalten. Das Erstellen von Filtern für Ihre Abonnements kann die Anzahl der Nachrichten, die Ihr Endpunkt verbrauchen muss, erheblich verringern.
Beispiel: eine UPDATE - TASK Ereignisabonnement kann nur dann auf Trigger gesetzt werden, wenn die newState einer Ereignis-Payload definiert die taskStatus as current.
- Wenn ein Filterfeld einen nicht leeren Wert hat, werden nur Nachrichten mit einer newState mit den Filterschlüsseln und -werten an die abonnierte URL gesendet werden
- Sie können nach benutzerdefinierten Daten filtern, die in der Variablen newState UND/ODER oldState des Objekts
- Filter werden nur danach ausgewertet, ob sie einem bestimmten Wert entsprechen oder nicht
- Wenn Ihre Filtersyntax falsch ist oder mit keiner der im newState der Payload wird keine Validierungsmeldung zurückgegeben, um anzuzeigen, dass ein Fehler aufgetreten ist
- Filter können nicht mit einem Abonnement aktualisiert werden, das bereits existiert. Ein neues Abonnement muss mit neuen Filterparametern erstellt werden.
- Mehrere Filter können auf ein Abonnement angewendet werden. Das Abonnement wird nur bereitgestellt, wenn alle Filterbedingungen erfüllt sind.
- Die Anwendung mehrerer Filter auf ein Abonnement entspricht der Verwendung einer UND logischen Operators.
- Auf ein einzelnes Objekt können mehrere Ereignisabonnements angewendet werden, sofern mindestens ein Parameter für das Abonnementfeld für Ereignisse zwischen den einzelnen Ereignisabonnements unterschiedlich ist.
- Wenn einem einzelnen Objekt mehrere Ereignisabonnements zugewiesen sind, können alle mit diesem Objekt verknüpften Ereignisabonnements an einen einzelnen Endpunkt zurückgegeben werden. Diese Praxis kann als gleichwertiger Ersatz für den logischen Operator verwendet werden ODER die nicht mithilfe von Filterparametern festgelegt werden können.
Verwenden von Vergleichsoperatoren
Sie können ein Vergleichsfeld zusammen mit dem Filterfeld angeben. Verwenden Sie in diesem Feld einen Vergleichsoperator zum , um nach Vergleichsergebnissen zu filtern. Sie können beispielsweise ein UPDATE - TASK-Abonnement erstellen, das nur dann eine Payload sendet, wenn der Aufgabenstatus NICHT gleich aktuell ist. Sie können die folgenden Vergleichsoperatoren verwenden:
eq: equal
Dieser Filter ermöglicht den Abruf von Nachrichten, wenn die eingetretene Änderung mit fieldValue
genau im Filter. Die fieldValue
-Wert die Groß-/Kleinschreibung beachten.
{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "name",
"fieldValue": "again",
"comparison": "eq"
}
]
}
ne: nicht gleich
Mit diesem Filter können Nachrichten durchkommen, wenn die eingetretene Änderung nicht mit fieldValue
genau im Filter. Die fieldValue
-Wert die Groß-/Kleinschreibung beachten.
{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "name",
"fieldValue": "again",
"comparison": "ne"
}
]
}
gt: größer als
Mit diesem Filter können Nachrichten durchlaufen werden, wenn die Aktualisierung auf die angegebene fieldName
größer als der Wert für fieldValue
.
{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "plannedCompletionDate",
"fieldValue": "2022-12-11T16:00:00.000-0800",
"comparison": "gt"
}
]
}
get: greater than or equal to
Mit diesem Filter können Nachrichten durchlaufen werden, wenn die Aktualisierung auf die angegebene fieldName
größer als oder gleich dem Wert für fieldValue
.
{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "plannedCompletionDate",
"fieldValue": "2022-12-11T16:00:00.000-0800",
"comparison": "gte"
}
]
}
lt: kleiner als
Mit diesem Filter können Nachrichten durchlaufen werden, wenn die Aktualisierung auf die angegebene fieldName
kleiner als der Wert für fieldValue
.
{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "plannedCompletionDate",
"fieldValue": "2022-12-18T16:00:00.000-0800",
"comparison": "lt"
}
]
}
lte: kleiner oder gleich
Mit diesem Filter können Nachrichten durchlaufen werden, wenn die Aktualisierung auf die angegebene fieldName
kleiner oder gleich dem Wert für fieldValue
.
{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "plannedCompletionDate",
"fieldValue": "2022-12-18T16:00:00.000-0800",
"comparison": "lte"
}
]
}
enthält
Dieser Filter ermöglicht den Abruf von Nachrichten, wenn die eingetretene Änderung die fieldValue
im Filter. Die fieldValue
Wert: Groß-/Kleinschreibung beachten
{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "name",
"fieldValue": "again",
"comparison": "contains"
}
]
}
ändern
Mit diesem Filter können Nachrichten nur durchkommen, wenn das angegebene Feld (fieldName
) hat einen anderen Wert in "oldstate"und "newstate". Andere Felder neben dem angegebenen (fieldName
) gibt diese Änderung nicht zurück.
fieldValue
im Filterarray unten hat keine Auswirkungen.{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "name",
"fieldValue": "",
"comparison": "changed"
}
]
}
state
Durch diesen Connector wird der Filter auf den neuen Status oder den alten Status des erstellten oder aktualisierten Objekts angewendet. Dies ist hilfreich, wenn Sie wissen möchten, wo eine Änderung von etwas zu einem anderen vorgenommen wurde.oldState
ist in CREATE nicht möglich eventTypes
.
again
auf oldState
, was vor einer Aktualisierung der Aufgabe war.Ein Anwendungsfall dafür wäre es, die objCode-Nachrichten zu finden, die sich von einer Sache zur anderen geändert haben. Um beispielsweise alle Aufgaben herauszufinden, die von "Research Some name"zu "Research TeamName Some name"geändert wurden
{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "name",
"fieldValue": "again",
"comparison": "contains",
"state": "oldState"
}
]
}
Connector-Felder verwenden
Die filterConnector
-Feld in der Abonnement-Payload können Sie festlegen, wie die Filter angewendet werden sollen. Der Standardwert ist "AND", wobei die Filter alle true
für die Anmeldenachricht angezeigt. Wenn "OR"angegeben ist, muss nur ein Filter übereinstimmen, damit die Abonnementnachricht übermittelt wird.
{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "name",
"fieldValue": "again",
"comparison": "contains"
},
{
"fieldName": "name",
"fieldValue": "also",
"comparison": "contains"
}
],
"filterConnector": "AND"
}
Löschen von Ereignisanmeldungen
Verwenden Sie beim Löschen von Workfronts HTTP die DELETE-Methode. Die Anforderungssyntax zum Löschen eines einzelnen Ereignisabonnements nach Anmelde-ID lautet wie folgt:
Anforderungs-URL:
DELETE https://<HOSTNAME>/attask/eventsubscription/api/v1/subscriptions/<SUBSCRIPTION ID>
Anforderungsheader:
Antwortcodes:
Beispiel für Antwortheader:
→Wed, 05 Apr 2017 21:33:41 GMT
→Apache-Coyote/1.1
Beispiel für den Antworttext: Nicht zutreffend
Beispiele für Ereignis-Payloads
Die Payload, die ein Benutzer erhält, variiert je nach Objekttyp. Es gibt jedoch ein konsistentes Format, für das diese variierenden Payloads bereitgestellt werden.
Beispielsweise bleiben die folgenden Eigenschaften für alle Ereignis-Payloads konsistent:
- eventType
- subscriptionId
- oldState
- newState
- eventTime
Die in den Eigenschaften enthaltenen Werte sind zwar formatkonsistent, unterscheiden sich aber von Objekt zu Objekttyp.
Beispiele für Payloads für ein UPDATE-Ereignis und ein CREATE-Ereignis finden Sie unten. Beachten Sie im UPDATE-Beispiel, dass die Objekte oldState und newState identisch sind, während im CREATE-Beispiel das Objekt oldState leer ist (nicht NULL).
Im Folgenden finden Sie ein Beispiel für eine Payload für ein UPDATE-Ereignis:
{
"eventType": "UPDATE",
"subscriptionId": "8a0d839d5ef32c9a015ef336a5ed0002",
"eventTime": {
"nano": 998000000,
"epochSecond": 1507319336
},
"newState": {
"ID": "59d7ddf7000002322d791eb08bafddfb",
"name": "EventSub Test updated",
"objCode": "PROJ",
"entryDate": "2017-10-06T13:48:07.776-0600",
"accessorIDs": [
"544820df0000142362741fc0c368de19"
],
"lastUpdateDate": "2017-10-06T13:48:56.980-0600",
"groupID": "544820df0000140f6a9c1faa7cacadd3",
"sponsorID": null,
"description": null,
"plannedCompletionDate": "2017-10-06T09:00:00.000-0600",
"enteredByID": "544820df0000142362741fc0c368de19",
"ownerID": "544820df0000142362741fc0c368de19",
"templateID": null,
"priority": 0,
"companyID": null,
"portfolioID": null,
"referenceNumber": 1894,
"lastUpdatedByID": "544820df0000142362741fc0c368de19",
"customerID": "544820df0000135b7719dcca654391f6",
"currency": null, "categoryID": null,
"status": "CUR",
"parameterValues": {}
},
"oldState": {
"ID": "59d7ddf7000002322d791eb08bafddfb",
"name": "EventSub Test 180fd595-63fb-4fa9-bd47-58bf6e53d964",
"objCode": "PROJ",
"entryDate": "2017-10-06T13:48:07.776-0600",
"accessorIDs": [
"544820df0000142362741fc0c368de19"
],
"lastUpdateDate": "2017-10-06T13:48:07.792-0600",
"groupID": "544820df0000140f6a9c1faa7cacadd3",
"sponsorID": null,
"description": null,
"plannedCompletionDate": "2017-10-06T09:00:00.000-0600",
"enteredByID": "544820df0000142362741fc0c368de19",
"ownerID": "544820df0000142362741fc0c368de19",
"templateID": null,
"priority": 0,
"companyID": null,<
"portfolioID": null,
"referenceNumber": 1894,
"lastUpdatedByID": "544820df0000142362741fc0c368de19",
"customerID": "544820df0000135b7719dcca654391f6",
"currency": null,
"categoryID": null,
"status": "CUR",
"parameterValues": {}
}
}
Im Folgenden finden Sie eine Beispiel-Payload für ein CREATE-Ereignis:
{
"eventType": "CREATE",
"subscriptionId": "4028e3815ebf03a7015ebfa53b6d0002",
"eventTime": {
"nano": 232000000,
"epochSecond": 1506453831
},
"newState": {
"ID": "59caa946000000e07b0afc3383230c67",
"name": "EventSub Test fe16d470-0a40-4290-92f4-6a0389fb536c",
"objCode": "PROJ",
"entryDate": "2017-09-26T13:23:50.746-0600",
"accessorIDs": ["544820df0000142362741fc0c368de19"],
"lastUpdateDate": "2017-09-26T13:23:50.927-0600",
"groupID": "544820df0000140f6a9c1faa7cacadd3",
"sponsorID": null,
"description": null,
"plannedCompletionDate": "2017-09-26T09:00:00.000-0600",
"enteredByID": "544820df0000142362741fc0c368de19",
"ownerID": "544820df0000142362741fc0c368de19",
"templateID": null,
"priority": 0,
"companyID": null,
"portfolioID": null,
"referenceNumber": 1750,
"lastUpdatedByID": "544820df0000142362741fc0c368de19",
"customerID": "544820df0000135b7719dcca654391f6",
"currency": null,
"categoryID": null,
"status": "CUR",
"parameterValues": {}
},
"oldState": {}
}
Basis-64-Kodierung
Wenn ein Abonnement für ein Ereignis aufgrund eines Konflikts zwischen Sonderzeichen in Ihren Ereignis-Abonnements und Ihren Netzwerkeinstellungen abgelehnt wird, können Sie die Base64-Kodierung verwenden, um Ihre Ereignis-Abonnements zu übermitteln. Base64 ist ein Satz von Kodierungs-Schemata, die beliebige Daten in ein ASCII-Zeichenfolgenformat übersetzen können. Es ist wichtig zu beachten, dass Base64 keine Form der Sicherheitsverschlüsselung ist.
Basis-64-Kodierungsfeld
Das Feld base64Encoding ist ein optionales Feld, das verwendet wird, um die Base64-Kodierung von Payloads für Ereignisabonnements zu aktivieren. Der Standardwert ist false und die möglichen Werte sind: true, false und "" (leer).
Beispiel einer Anfrage mit dem Feld base64Encoding
Wenn eine Anfrage mit dem base64Encoding -Feld durchgeführt wird, für das "true"festgelegt ist, wird die newState und oldState -Objekte in der Payload werden als Basis-Kodierungs-Zeichenfolgen mit 64 Zeichen bereitgestellt. Wenn das Feld base64Encoding auf false gesetzt, leer gelassen oder nicht in der Anfrage enthalten ist, wird die zurückgegebene Payload nicht in base 64 kodiert.
Im Folgenden finden Sie ein Beispiel für eine Anfrage, die das Feld base64Encoding verwendet:
{
"objCode": "PROJ",
"eventType": "UPDATE",
"url": "http://requestb.in/ua5hi2ua"",
"authToken": "EauthTokenWorkfrontRocks1234_",
"base64Encoding": "true"
}
Beispiele für Antwort-Payloads in der Basis-64-Kodierung
{
"eventType": "UPDATE",
"subscriptionId": "8a0d839d5ef32c9a015ef336a5ed0002",
"eventTime": {
"nano": 998000000,
"epochSecond": 1507319336
},
"newState": "ewogICAgICAgIklEIjogIjU5ZDdkZGY3MDAwMDAyMzIyZDc5MWViMDhiYWZkZGZiIiwgCiAgICAgICAibmFtZSI6ICJFdmVudFN1YiBUZXN0IHVwZGF0ZWQiLAogICAgICAgIm9iakNvZGUiOiAiUFJPSiIsCiAgICAgICAiZW50cnlEYXRlIjogIjIwMTctMTAtMDZUMTM6NDg6MDcuNzc2LTA2MDAiLAogICAgICAgImFjY2Vzc29ySURzIjogWwogICAgICAgICAgICI1NDQ4MjBkZjAwMDAxNDIzNjI3NDFmYzBjMzY4ZGUxOSIKICAgICAgIF0sCiAgICAgICAibGFzdFVwZGF0ZURhdGUiOiAiMjAxNy0xMC0wNlQxMzo0ODo1Ni45ODAtMDYwMCIsCiAgICAgICAiZ3JvdXBJRCI6ICI1NDQ4MjBkZjAwMDAxNDBmNmE5YzFmYWE3Y2FjYWRkMyIsCiAgICAgICAic3BvbnNvcklEIjogbnVsbCwKICAgICAgICJkZXNjcmlwdGlvbiI6IG51bGwsCiAgICAgICAicGxhbm5lZENvbXBsZXRpb25EYXRlIjogIjIwMTctMTAtMDZUMDk6MDA6MDAuMDAwLTA2MDAiLAogICAgICAgImVudGVyZWRCeUlEIjogIjU0NDgyMGRmMDAwMDE0MjM2Mjc0MWZjMGMzNjhkZTE5IiwKICAgICAgICJvd25lcklEIjogIjU0NDgyMGRmMDAwMDE0MjM2Mjc0MWZjMGMzNjhkZTE5IiwKICAgICAgICJ0ZW1wbGF0ZUlEIjogbnVsbCwKICAgICAgICJwcmlvcml0eSI6IDAsCiAgICAgICAiY29tcGFueUlEIjogbnVsbCwKICAgICAgICJwb3J0Zm9saW9JRCI6IG51bGwsCiAgICAgICAicmVmZXJlbmNlTnVtYmVyIjogMTg5NCwKICAgICAgICJsYXN0VXBkYXRlZEJ5SUQiOiAiNTQ0ODIwZGYwMDAwMTQyMzYyNzQxZmMwYzM2OGRlMTkiLAogICAgICAgImN1c3RvbWVySUQiOiAiNTQ0ODIwZGYwMDAwMTM1Yjc3MTlkY2NhNjU0MzkxZjYiLAogICAgICAgImN1cnJlbmN5IjogbnVsbCwKICAgICAgICJjYXRlZ29yeUlEIjogbnVsbCwKICAgICAgICJzdGF0dXMiOiAiQ1VSIiwKICAgICAgICJwYXJhbWV0ZXJWYWx1ZXMiOiB7fQogICAgfQ==",
"oldState": "ewogICAgICAgICJJRCI6ICI1OWQ3ZGRmNzAwMDAwMjMyMmQ3OTFlYjA4YmFmZGRmYiIsCiAgICAgICAgIm5hbWUiOiAiRXZlbnRTdWIgVGVzdCAxODBmZDU5NS02M2ZiLTRmYTktYmQ0Ny01OGJmNmU1M2Q5NjQiLAogICAgICAgICJvYmpDb2RlIjogIlBST0oiLAogICAgICAgICJlbnRyeURhdGUiOiAiMjAxNy0xMC0wNlQxMzo0ODowNy43NzYtMDYwMCIsCiAgICAgICAgImFjY2Vzc29ySURzIjogWwogICAgICAgICAgICAiNTQ0ODIwZGYwMDAwMTQyMzYyNzQxZmMwYzM2OGRlMTkiCiAgICAgICAgXSwKICAgICAgICAibGFzdFVwZGF0ZURhdGUiOiAiMjAxNy0xMC0wNlQxMzo0ODowNy43OTItMDYwMCIsCiAgICAgICAgImdyb3VwSUQiOiAiNTQ0ODIwZGYwMDAwMTQwZjZhOWMxZmFhN2NhY2FkZDMiLAogICAgICAgICJzcG9uc29ySUQiOiBudWxsLAogICAgICAgICJkZXNjcmlwdGlvbiI6IG51bGwsCiAgICAgICAgInBsYW5uZWRDb21wbGV0aW9uRGF0ZSI6ICIyMDE3LTEwLTA2VDA5OjAwOjAwLjAwMC0wNjAwIiwKICAgICAgICAiZW50ZXJlZEJ5SUQiOiAiNTQ0ODIwZGYwMDAwMTQyMzYyNzQxZmMwYzM2OGRlMTkiLAogICAgICAgICJvd25lcklEIjogIjU0NDgyMGRmMDAwMDE0MjM2Mjc0MWZjMGMzNjhkZTE5IiwKICAgICAgICAidGVtcGxhdGVJRCI6IG51bGwsCiAgICAgICAgInByaW9yaXR5IjogMCwKICAgICAgICAiY29tcGFueUlEIjogbnVsbCw8CiAgICAgICAgInBvcnRmb2xpb0lEIjogbnVsbCwKICAgICAgICAicmVmZXJlbmNlTnVtYmVyIjogMTg5NCwKICAgICAgICAibGFzdFVwZGF0ZWRCeUlEIjogIjU0NDgyMGRmMDAwMDE0MjM2Mjc0MWZjMGMzNjhkZTE5IiwKICAgICAgICAiY3VzdG9tZXJJRCI6ICI1NDQ4MjBkZjAwMDAxMzViNzcxOWRjY2E2NTQzOTFmNiIsCiAgICAgICAgImN1cnJlbmN5IjogbnVsbCwKICAgICAgICAiY2F0ZWdvcnlJRCI6IG51bGwsCiAgICAgICAgInN0YXR1cyI6ICJDVVIiLAogICAgICAgICJwYXJhbWV0ZXJWYWx1ZXMiOiB7fQogICAgfQ=="
}
Veraltete Methode zur Abfrage aller Ereignisanmeldungen
Der folgende API-Endpunkt wird nicht mehr unterstützt und sollte nicht für neue Implementierungen verwendet werden. Wir empfehlen auch die Umstellung alter Implementierungen auf die -Methode im Abfrage von Ereignisanmeldungen Abschnitt beschrieben.
Sie können alle Ereignisabonnements für einen Kunden abfragen, wie durch den Wert sessionID angegeben. Die Anforderungssyntax für die Auflistung aller Ereignisanmeldungen für einen bestimmten Kunden lautet die folgende URL:
GET https://<HOSTNAME>/attask/eventsubscription/api/v1/subscriptions/list
Anforderungsheader:
Antwortcodes:
Beispiel für Antworttext
[
{
"id": "37c4bcf5-e0b5-4256-aba3-a51cba7bf997",
"customer_id": "504f9640000013401be513579fbebffa",
"obj_id": "ObjId1234",
"obj_code": "TASK",
"url": "http://test.test.net/test/1234",
"event_type": "UPDATE",
"auth_token": "auth_token"
},
{
"id": "750a636c-5628-48f5-ba26-26b7ce537ac2",
"customer_d": "504f9640000013401be513579fbebffa",
"obj_id": null,
"obj_code": "PROJ",
"url": "http://requestb.in/ua5hi2ua",
"event_type": "UPDATE",
"auth_token": "authTokenWorkfrontRocks1234_"
}
]