API voor abonnementen voor gebeurtenissen
Wanneer een actie op een voorwerp van Adobe Workfront voorkomt dat door gebeurtenisabonnementen wordt gesteund, kunt u Workfront vormen om een reactie naar uw gewenste eindpunt te verzenden. Dit betekent dat toepassingen van derden updates van Workfront-interacties kunnen ontvangen via de Workfront API kort nadat ze zich voordoen. Over het algemeen kunt u verwachten dat u binnen 5 seconden vanaf het moment dat de gegevenswijziging wordt geregistreerd, webhaakmeldingen ontvangt. Gemiddeld ontvangen klanten binnen minder dan 1 seconde berichten via een webhaak vanaf de gegevenswijziging die wordt geregistreerd.
Aangezien gebeurtenisabonnementen gegevens naar een andere service verzenden, worden ze beheerd via opdrachten in plaats van via de Workfront-toepassing.
Als u via uw firewall gebeurtenisabonnementen wilt ontvangen, moet u de volgende IP-adressen aan uw lijst van gewenste personen toevoegen:
voor klanten 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
voor klanten in plaatsen buiten 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
De volgende onderwerpen ondersteunen de API voor abonnementen op gebeurtenissen:
Objecten ondersteund door gebeurtenisabonnementen
De volgende Workfront-objecten worden ondersteund door gebeurtenisabonnementen.
- Goedkeuring
- Goedkeuringsfase
- Deelnemer goedkeuringswerkgebied
- Toewijzing
- Bedrijf
- Dashboard
- Document
- Kosten
- Veld
- Uur
- Probleem
- Opmerking
- Portfolio
- Programma
- Project
- Opnemen
- Recordtype
- Rapport
- Taak
- Sjabloon
- Tijdschema
- Gebruiker
- Workspace
Verificatie van abonnement op gebeurtenis
Uw Workfront-gebruiker heeft het volgende nodig om een gebeurtenissenabonnement te maken, te vragen of te verwijderen:
-
Een toegangsniveau van "Beheerder van het Systeem"wordt vereist om de Abonnementen van de Gebeurtenis te gebruiken.
-
Een header
sessionID
is vereist om de API voor abonnementen op gebeurtenissen te gebruikenVoor meer informatie, zie Authentificatiein API Grondbeginselen.
Overlappingen van gebeurtenisabonnementen voorkomen
De dienst van gebeurtenisabonnementen wordt ontworpen om betrouwbare levering van gebeurtenissen voor alle gebruikers te verstrekken. Om dit te garanderen zijn er voorzorgsmaatregelen getroffen om te voorkomen dat één gebruiker buitensporige gebeurtenisproductie aanbrengt die mogelijke problemen met betrekking tot de servicekwaliteit voor alle gebruikers kan veroorzaken. Als gevolg hiervan kan een gebruiker die te veel gebeurtenissen produceert met een hoge snelheid binnen een korte tijdsperiode, worden geconfronteerd met sandboxing en vertraging bij de levering van de gebeurtenis.
De abonnementsbron opmaken
De abonnementsbron bevat de volgende velden.
-
objId (optioneel)
- Koord - identiteitskaart van het voorwerp van gespecificeerde objCode waarvoor de gebeurtenissen in brand worden gestoken. Als dit veld niet is opgegeven, ontvangt de gebruiker gebeurtenissen voor alle objecten van het opgegeven type.
-
objCode (vereist)
-
Koord - objCode van het voorwerp dat aan veranderingen wordt ingetekend. De mogelijke waarden voor objCode worden in de onderstaande tabel weergegeven.
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 21-row-2 22-row-2 23-row-2 layout-auto Object objCode Goedkeuring goedkeuring Goedkeuringsfase approval_stage Deelnemer goedkeuringswerkgebied approval_stage_participant Toewijzing ASSGN Bedrijf CMPY Dashboard PTLTAB Document DOCU Kosten EXPNS Veld VELD Uur UUR Probleem OPTASK Opmerking OPMERKING Portfolio POORT Programma PRGM Project PROJ Opnemen RECORD Recordtype RECORD_TYPE Rapport PTLSEC Taak TAAK Sjabloon TMPL Tijdschema TSHET Gebruiker GEBRUIKER Workspace WORKSPACE
-
-
eventType (vereist)
-
Koord - een waarde die het type van gebeurtenis vertegenwoordigt waarop het voorwerp wordt ingetekend. De beschikbare gebeurtenistypen zijn:
- MAKEN
- DELETE
- BIJWERKEN
-
-
url (vereist)
- Koord - URL van het eindpunt waaraan de nuttige ladingen van de abonnementsgebeurtenis via HTTP worden verzonden.
-
authToken (vereist)
- Koord - het token OAuth2 dat wordt gebruikt om met URL voor authentiek te verklaren die op het "URL"gebied wordt gespecificeerd.
API-aanvragen voor abonnementen voor gebeurtenissen maken
Nadat u ervoor hebt gezorgd dat de gebruiker beheerderstoegang heeft en de abonneebron vormt, bent u klaar om gebeurtenisabonnementen te maken.
Gebruik de volgende syntaxis om de URL samen te stellen.
Verzoek URL
POST https://<HOSTNAME>/attask/eventsubscription/api/v1/subscriptions
de kopballen van het Verzoek
Voorbeeld van het Lichaam van het Verzoek:
{
"objCode": "PROJ",
"eventType": "UPDATE",
"url": "http://requestb.in/ua5hi2ua",
"authToken": "EauthTokenWorkfrontRocks1234_"
}
het lichaamshoofdvoorbeeld van de Reactie
{
"id": <NEW SUBSCRIPTION ID>,
"version": <NEW SUBSCRIPTION VERSION>
}
Als u een abonnementsbron doorgeeft als de hoofdtekst van een aanvraag (waarbij het inhoudstype 'application/json' is), wordt een gebeurtenisabonnement gemaakt voor het opgegeven object. Een antwoordcode van 201 (Gemaakt) geeft aan dat het abonnement is gemaakt. Een antwoordcode buiten 201 betekent het abonnement NIET werd gecreeerd.
Voorbeeld van de Kopballen van de Reactie:
→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
Abonnementen voor opvragen van gebeurtenissen
Gebruik de GET-methode wanneer u Workfront HTTP opvraagt. Er zijn twee manieren om te zoeken naar gebeurtenisabonnementen: query op abonnement-id (zie hieronder) of vraag naar alle gebeurtenisabonnementen.
Query uitvoeren op alle abonnementen voor gebeurtenissen
U kunt alle gebeurtenissenabonnementen voor een klant vragen, of het volgende gebruiken om de reactie te beheren. U kunt ook de volgende opties gebruiken om de reactie te beheren:
- pagina: de optie van de vraagparameter om het aantal pagina's te specificeren om terug te keren. De standaardwaarde is 1.
- grens: de optie van de vraagparameter om het aantal resultaten te specificeren per pagina terug te keren. De standaardwaarde is 100 met een maximum van 1000.
De aanvraagsyntaxis voor het aanbieden van alle gebeurtenisabonnementen voor een specifieke klant is als volgt:
Verzoek URL
GET https://<HOSTNAME>/attask/eventsubscription/api/v1/subscriptions
Kopballen van het Verzoek:
Codes van de Reactie
Voorbeeld van de Kopballen van de Reactie
→application/json;charset=UTF-8
→Wed, 05 Apr 2017 21:29:32 GMT
→Apache-Coyote/1.1
→chunked
Voorbeeld van het Lichaam van de Reactie
{
"id": "750a636c-5628-48f5-ba26-26b7ce537ac2",
"date_created": "2024-04-11T17:10:10.305981",
"date_modified": "2024-04-11T17:10:10.305981",
"version": "v2",
"dateVersionUpdated": "2025-01-15T04:04:04.407945"
"customerId": "504f9640000013401be513579fbebffa",
"objId": null,
"objCode": "PROJ",
"url": "http://requestb.in/ua5hi2ua",
"eventType": "UPDATE",
"authToken": "authTokenWorkfrontRocks1234_"
"subscription_url": {
"url": "http://requestb.in/ua5hi2ua",
"date_created": "2024-04-11T15:56:14.169489",
"successes": 11,
"failures": 2,
"disabled_at": null,
"frozen_at": null
}
}
Wanneer
- pagina en grens zijn de waarden die in het verzoek of het gebrek worden verstrekt als geen waarden worden verstrekt
- page_count is het totale aantal pagina's die kunnen worden gevraagd.
- total_count is het totale aantal abonnementen die de vraag aanpassen.
Query uitvoeren op de abonnements-id
U kunt zoeken naar gebeurtenisabonnementen op basis van de id van het abonnement op de gebeurtenis. De aanvraagsyntaxis voor abonnementen op gebeurtenissen ziet er als volgt uit:
Verzoek URL
GET https://<HOSTNAME>/attask/eventsubscription/api/v1/subscriptions/<SUBSCRIPTION ID>
Kopballen van het Verzoek
Codes van de Reactie
Voorbeeld van het Lichaam van de Reactie
{
"id": "750a636c-5628-48f5-ba26-26b7ce537ac2",
"date_created": "2024-04-11T17:10:10.305981",
"date_modified": "2024-04-11T17:10:10.305981",
"version": "v2",
"dateVersionUpdated": "2025-01-15T04:04:04.407945"
"customerId": "504f9640000013401be513579fbebffa",
"objId": null,
"objCode": "PROJ",
"url": "http://requestb.in/ua5hi2ua",
"eventType": "UPDATE",
"authToken": "authTokenWorkfrontRocks1234_"
"subscription_url": {
"url": "http://requestb.in/ua5hi2ua",
"date_created": "2024-04-11T15:56:14.169489",
"successes": 11,
"failures": 2,
"disabled_at": null,
"frozen_at": null
}
}
Abonnementsversie voor gebeurtenissen
Workfront heeft twee versies van gebeurtenisabonnementen.
De capaciteit om gebeurtenisabonnementen te bevorderen of te degraderen zorgt ervoor dat wanneer de veranderingen in de structuur van gebeurtenissen worden aangebracht, de bestaande abonnementen niet breken, toestaand u om aan de nieuwe versie zonder een hiaat in uw gebeurtenisabonnement te testen en te bevorderen.
Voor meer informatie over gebeurtenisabonnement versioning, met inbegrip van specifieke verschillen tussen de versie en belangrijke data, zie het abonnement van de Gebeurtenis versioning.
Versie van één abonnement wijzigen
De aanvraagsyntaxis voor het wijzigen van de versie voor één abonnement is:
Verzoek URL
PUT https://<HOSTNAME>/attask/eventsubscription/api/v1/subscriptions/<SUBSCRIPTION ID>/version
het verzoeklichaam van het Voorbeeld
{
"version": "v2"
}
het reactielichaam van het Voorbeeld (200)
{
"id": <SUBSCRIPTION ID>,
"version": "v2"
}
Mogelijke antwoordcodes
- 200
- 400
- 404
Meerdere versies met abonnement wijzigen
Dit eindpunt verandert de versie van veelvoudige abonnementen, door lijst van abonnementen of de abonnementenvlag van alle klant.
De aanvraagsyntaxis voor het wijzigen van de versie voor één abonnement is:
Verzoek URL
PUT https://<HOSTNAME>/attask/eventsubscription/api/v1/subscriptions/version
de organen van het de verzoekverzoek van het Voorbeeld
-
Instantie van het verzoek voor lijst van abonnementen
code language-none { "subscriptionIds": [<SUBSCRIPTION ID 1>, <SUBSCRIPTION ID 2>], "version": "v2" }
-
Instantie aanvragen voor alle abonnementen van de klant
code language-none { "allCustomerSubscriptions": true, "version": "v2" }
het reactielichaam van het Voorbeeld (200)
{
"subscription_ids": [<SUBSCRIPTION ID 1>, <SUBSCRIPTION ID 2>, ...],
"version": "v2"
}
Mogelijke antwoordcodes
- 200
- 400
Filteren op abonnementen voor gebeurtenissen
Filteren met gebeurtenisabonnementen kan worden gebruikt om ervoor te zorgen dat u alleen relevante berichten ontvangt. Het creëren van filters voor uw abonnementen kan het aantal berichten beduidend verminderen dat uw eindpunt moet verbruiken.
Bijvoorbeeld, kan een UPDATE - TASK gebeurtenisabonnement worden geplaatst om slechts teweeg te brengen wanneer newState van een gebeurtenislading taskStatus als huidig bepaalt.
-
Wanneer een filtergebied een niet lege waarde slechts berichten met a newState heeft die de filtersleutels bevatten en de waarden worden verzonden naar geabonneerde URL
-
U kunt door douanegegevens filtreren inbegrepen in newState EN/OF oldState van het voorwerp
-
Filters worden alleen beoordeeld op het feit of ze al dan niet gelijk zijn aan een specifieke waarde
-
Als uw filtersyntaxis onjuist is of geen gegevens aanpast in newState van de nuttige lading, zal een bevestigingsbericht niet zijn teruggekeerd om op te wijzen een fout is voorgekomen
-
Filters kunnen niet worden bijgewerkt op een abonnement dat momenteel bestaat. Een nieuw abonnement moet worden gemaakt met nieuwe filterparameters.
-
Er kunnen meerdere filters worden toegepast op één abonnement en het abonnement wordt alleen geleverd als aan alle filtervoorwaarden is voldaan.
-
Het toepassen van veelvoudige filters op één enkel abonnement is een praktijk gelijkwaardig aan het gebruiken van een EN logische exploitant.
-
Meerdere gebeurtenisabonnementen kunnen op één object worden toegepast zolang er een of meer parameters voor het abonnementsveld voor gebeurtenissen verschillen tussen de abonnementen voor elke gebeurtenis.
-
Wanneer meerdere gebeurtenisabonnementen worden toegewezen aan één object, kunnen alle gebeurtenisabonnementen die aan dat object zijn gekoppeld, worden geretourneerd naar één eindpunt. Deze praktijk kan als gelijkwaardig substituut voor logische exploitant worden gebruikt OF die niet kan worden geplaatst gebruikend filterparameters.
-
De volgende velden kunnen niet worden gefilterd:
- DOCU.groups
- RECORD.data
- RECORD_TYPE.data
- RECORD_TYPE.fields
Vergelijkingsoperatoren gebruiken
U kunt samen met het filterveld een vergelijkingsveld opgeven. Gebruik een vergelijkingsoperator in dit veld om te filteren op vergelijkende resultaten. U kunt bijvoorbeeld een UPDATE - TASK-abonnement maken dat alleen een lading verzendt als de taakstatus NIET gelijk is aan de huidige status. U kunt de volgende vergelijkingsoperatoren gebruiken:
eq: gelijk
Met dit filter kunnen berichten worden doorlopen als de wijziging die zich heeft voorgedaan precies overeenkomt met fieldValue
in het filter. De waarde fieldValue
is hoofdlettergevoelig.
{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "name",
"fieldValue": "again",
"comparison": "eq"
}
]
}
ne: niet gelijk
Met dit filter kunnen berichten worden doorlopen als de wijziging die zich heeft voorgedaan niet exact overeenkomt met fieldValue
in het filter. De waarde fieldValue
is hoofdlettergevoelig.
{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "name",
"fieldValue": "again",
"comparison": "ne"
}
]
}
gt: groter dan
Met dit filter kunnen berichten worden weergegeven als de update voor de opgegeven fieldName
groter is dan de waarde voor 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"
}
]
}
gte: groter dan of gelijk aan
Met dit filter kunnen berichten worden weergegeven als de update voor de opgegeven fieldName
groter is dan of gelijk is aan de waarde voor 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: minder dan
Met dit filter kunnen berichten worden weergegeven als de update van de opgegeven fieldName
kleiner is dan de waarde voor 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 dan of gelijk aan
Met dit filter kunnen berichten worden weergegeven als de update voor de opgegeven fieldName
kleiner is dan of gelijk is aan de waarde voor 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"
}
]
}
contains
Met dit filter kunnen berichten worden doorlopen als de wijziging die zich heeft voorgedaan de fieldValue
in het filter bevat. De waarde fieldValue
is hoofdlettergevoelig
{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "name",
"fieldValue": "again",
"comparison": "contains"
}
]
}
containsOnly
Met dit filter kunnen alleen berichten worden weergegeven wanneer de volledige set geselecteerde waarden exact overeenkomt met de fieldValue in het filter, ongeacht de volgorde. Er mogen geen extra of ontbrekende waarden zijn.
groups
exact "Keuze 3" en "Keuze 4" bevat, zonder extra of ontbrekende waarden en ongeacht de volgorde. Als een tekenreeks of een geheel getal wordt opgegeven in fieldValue
in plaats van een array, staat het abonnement toe dat berichten alleen worden doorgestuurd wanneer het veld groups
exact één optie bevat en die optie exact overeenkomt met de tekenreeks of het gehele getal dat is opgegeven in fieldValue
."{
"objCode": "PROJ",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedProjects",
"filters": [
{
"fieldName": "groups",
"fieldValue": [
"Choice 3",
"Choice 4"
],
"state": "newState",
"comparison": "containsOnly"
}
]
}
notContains
Met dit filter kunnen alleen berichten worden weergegeven wanneer het opgegeven veld (fieldName
) niet de opgegeven waarde (fieldValue
) bevat.
groups
niet de tekenreeks "Groep 2" bevatten.{
"objCode": "PROJ",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedProjects",
"filters": [
{
"fieldName": "groups",
"fieldValue": "Group 2",
"state": "newState",
"comparison": "notContains"
}
]
}
wijzigen
Dit filter staat berichten toe om door te komen slechts als het gespecificeerde gebied (fieldName
) een verschillende waarde in oldstate en newstate heeft. Het bijwerken van andere gebieden naast gespecificeerd (fieldName
) zal niet die verandering terugkeren.
fieldValue
in de array filters eronder heeft geen effect.{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "name",
"fieldValue": "",
"comparison": "changed"
}
]
}
state
Met deze connector wordt het filter toegepast op de nieuwe status of oude status van het object dat is gemaakt of bijgewerkt. Dit is handig als u wilt weten waar een wijziging van de ene naar de andere wijziging heeft plaatsgevonden.oldState
is niet mogelijk op CREATE eventTypes
.
again
bevat op de oldState
-taak, wat deze was voordat een update op de taak werd uitgevoerd.>Een gebruiksgeval voor dit zou zijn om de objCode- berichten te vinden die van één ding aan een ander veranderden. Bijvoorbeeld om alle taken te weten te komen die van "Onderzoek één of andere naam"in "Onderzoek TeamName Één of andere naam"veranderde
{
"objCode": "TASK",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedTasks",
"filters": [
{
"fieldName": "name",
"fieldValue": "again",
"comparison": "contains",
"state": "oldState"
}
]
}
Geneste filters gebruiken
Met Gebeurtenisabonnement kunt u filteren op geneste velden van gebeurtenissen met behulp van de geneste veldnamen. Als u bijvoorbeeld een bericht wilt filteren waarin newState.data.customField1 = 'myCustomeFieldValue'
, kunt u het volgende abonnement met filter maken:
{
"objCode": "RECORD",
"eventType": "UPDATE",
"authToken": "token",
"url": "https://domain-for-subscription.com/API/endpoint/UpdatedRecords",
"filters": [
{
"fieldName": "data",
"fieldValue": {
"customField1": "myCustomFieldValue"
},
"comparison": "eq",
"state": "newState"
}
]
}
Dubbel geneste filters kunnen ook worden benaderd.
"filters": [
{
"fieldName": "data",
"fieldValue": {
"fields": {
"children": {
"customerId":"customer1234",
"name":"New Campaign"
}
}
},
"comparison": "eq",
"state": "newState"
}
],
"filterConnector": 'AND'
Verbindingsvelden gebruiken
In het veld filterConnector
op de payload van het abonnement kunt u kiezen hoe de filters moeten worden toegepast. De standaardwaarde is "AND", waarbij de filters true
moeten zijn voordat het abonnementsbericht wordt weergegeven. Als "OR" is opgegeven, moet slechts één filter overeenkomen voor het abonnementsbericht dat wordt doorgestuurd.
{
"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"
}
Gebeurtenisabonnementen verwijderen
Gebruik de DELETE-methode wanneer u Workfront HTTP verwijdert. De aanvraagsyntaxis voor het verwijderen van één gebeurtenisabonnement op basis van abonnement-id ziet er als volgt uit:
Verzoek URL:
DELETE https://<HOSTNAME>/attask/eventsubscription/api/v1/subscriptions/<SUBSCRIPTION ID>
Kopballen van het Verzoek:
Codes van de Reactie:
Voorbeeld van de Kopballen van de Reactie:
→Wed, 05 Apr 2017 21:33:41 GMT
→Apache-Coyote/1.1
Voorbeeld van het Lichaam van de Reactie: nvt
Voorbeelden van gebeurtenistaken
De lading die een gebruiker ontvangt varieert afhankelijk van het objecttype, maar er is een verenigbare formaat waarvoor die variërende ladingen worden geleverd.
De volgende eigenschappen blijven bijvoorbeeld consistent voor alle gebeurtenisladingen:
- eventType
- subscriptionId
- oldState
- newState
- eventTime
Hoewel de indeling consistent is, variëren de waarden in de eigenschappen tussen de verschillende objecten en objecttypen.
Hieronder ziet u voorbeelden van ladingen voor een UPDATE-gebeurtenis en een CREATE-gebeurtenis. In het voorbeeld UPDATE zijn de objecten oldState en newState hetzelfde, terwijl in het voorbeeld CREATE het object oldState leeg is (niet NULL).
Hieronder ziet u een voorbeeld van een payload voor een UPDATE-gebeurtenis:
{
"eventType": "UPDATE",
"subscriptionId": "8a0d839d5ef32c9a015ef336a5ed0002",
"eventTime": {
"nano": 998000000,
"epochSecond": 1507319336
},
"eventVersion": "v2",
"subscriptionVersion": "v2",
"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": {}
}
}
Hier volgt een voorbeeld van een payload voor een CREATE-gebeurtenis:
{
"eventType": "CREATE",
"subscriptionId": "4028e3815ebf03a7015ebfa53b6d0002",
"eventTime": {
"nano": 232000000,
"epochSecond": 1506453831
},
"eventVersion": "v2",
"subscriptionVersion": "v2",
"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-codering
Als een gebeurtenisabonnement wegens een conflict tussen speciale karakters in uw gebeurtenisabonnementen en uw netwerkmontages wordt verworpen, dan kunt u het coderen Base64 gebruiken om uw gebeurtenisabonnementen over te gaan. Base64 is een reeks coderingsregelingen die om het even welke willekeurige gegevens in een formaat van het koord van ASCII kunnen omzetten. Het is belangrijk om op te merken dat Base64 geen vorm van veiligheidsencryptie is.
Base 64 Encoding Field
Het base64Encoding-veld is een optioneel veld dat wordt gebruikt om Base64-codering van gebeurtenisabonnementsladingen in te schakelen. De standaardwaarde is false en de mogelijke waarden zijn: true, false en " " (leeg).
Voorbeeld van een aanvraag met het base64Encoding-veld
Als een verzoek wordt gemaakt gebruikend het base64Encoding gebied dat aan waar wordt geplaatst, dan worden de newState en oldState voorwerpen in de nuttige lading geleverd als basis 64 coderende koorden. Als het base64Encoding-veld is ingesteld op false, leeg wordt gelaten of niet is opgenomen in de aanvraag, wordt de geretourneerde payload niet gecodeerd in basis 64.
Hieronder ziet u een voorbeeld van een aanvraag die het veld base64Encoding gebruikt:
{
"objCode": "PROJ",
"eventType": "UPDATE",
"url": "http://requestb.in/ua5hi2ua"",
"authToken": "EauthTokenWorkfrontRocks1234_",
"base64Encoding": "true"
}
Voorbeelden van antwoordladingen in basis 64-codering
{
"eventType": "UPDATE",
"subscriptionId": "8a0d839d5ef32c9a015ef336a5ed0002",
"eventTime": {
"nano": 998000000,
"epochSecond": 1507319336
},
"eventVersion": "v2",
"subscriptionVersion": "v2",
"newState": "ewogICAgICAgIklEIjogIjU5ZDdkZGY3MDAwMDAyMzIyZDc5MWViMDhiYWZkZGZiIiwgCiAgICAgICAibmFtZSI6ICJFdmVudFN1YiBUZXN0IHVwZGF0ZWQiLAogICAgICAgIm9iakNvZGUiOiAiUFJPSiIsCiAgICAgICAiZW50cnlEYXRlIjogIjIwMTctMTAtMDZUMTM6NDg6MDcuNzc2LTA2MDAiLAogICAgICAgImFjY2Vzc29ySURzIjogWwogICAgICAgICAgICI1NDQ4MjBkZjAwMDAxNDIzNjI3NDFmYzBjMzY4ZGUxOSIKICAgICAgIF0sCiAgICAgICAibGFzdFVwZGF0ZURhdGUiOiAiMjAxNy0xMC0wNlQxMzo0ODo1Ni45ODAtMDYwMCIsCiAgICAgICAiZ3JvdXBJRCI6ICI1NDQ4MjBkZjAwMDAxNDBmNmE5YzFmYWE3Y2FjYWRkMyIsCiAgICAgICAic3BvbnNvcklEIjogbnVsbCwKICAgICAgICJkZXNjcmlwdGlvbiI6IG51bGwsCiAgICAgICAicGxhbm5lZENvbXBsZXRpb25EYXRlIjogIjIwMTctMTAtMDZUMDk6MDA6MDAuMDAwLTA2MDAiLAogICAgICAgImVudGVyZWRCeUlEIjogIjU0NDgyMGRmMDAwMDE0MjM2Mjc0MWZjMGMzNjhkZTE5IiwKICAgICAgICJvd25lcklEIjogIjU0NDgyMGRmMDAwMDE0MjM2Mjc0MWZjMGMzNjhkZTE5IiwKICAgICAgICJ0ZW1wbGF0ZUlEIjogbnVsbCwKICAgICAgICJwcmlvcml0eSI6IDAsCiAgICAgICAiY29tcGFueUlEIjogbnVsbCwKICAgICAgICJwb3J0Zm9saW9JRCI6IG51bGwsCiAgICAgICAicmVmZXJlbmNlTnVtYmVyIjogMTg5NCwKICAgICAgICJsYXN0VXBkYXRlZEJ5SUQiOiAiNTQ0ODIwZGYwMDAwMTQyMzYyNzQxZmMwYzM2OGRlMTkiLAogICAgICAgImN1c3RvbWVySUQiOiAiNTQ0ODIwZGYwMDAwMTM1Yjc3MTlkY2NhNjU0MzkxZjYiLAogICAgICAgImN1cnJlbmN5IjogbnVsbCwKICAgICAgICJjYXRlZ29yeUlEIjogbnVsbCwKICAgICAgICJzdGF0dXMiOiAiQ1VSIiwKICAgICAgICJwYXJhbWV0ZXJWYWx1ZXMiOiB7fQogICAgfQ==",
"oldState": "ewogICAgICAgICJJRCI6ICI1OWQ3ZGRmNzAwMDAwMjMyMmQ3OTFlYjA4YmFmZGRmYiIsCiAgICAgICAgIm5hbWUiOiAiRXZlbnRTdWIgVGVzdCAxODBmZDU5NS02M2ZiLTRmYTktYmQ0Ny01OGJmNmU1M2Q5NjQiLAogICAgICAgICJvYmpDb2RlIjogIlBST0oiLAogICAgICAgICJlbnRyeURhdGUiOiAiMjAxNy0xMC0wNlQxMzo0ODowNy43NzYtMDYwMCIsCiAgICAgICAgImFjY2Vzc29ySURzIjogWwogICAgICAgICAgICAiNTQ0ODIwZGYwMDAwMTQyMzYyNzQxZmMwYzM2OGRlMTkiCiAgICAgICAgXSwKICAgICAgICAibGFzdFVwZGF0ZURhdGUiOiAiMjAxNy0xMC0wNlQxMzo0ODowNy43OTItMDYwMCIsCiAgICAgICAgImdyb3VwSUQiOiAiNTQ0ODIwZGYwMDAwMTQwZjZhOWMxZmFhN2NhY2FkZDMiLAogICAgICAgICJzcG9uc29ySUQiOiBudWxsLAogICAgICAgICJkZXNjcmlwdGlvbiI6IG51bGwsCiAgICAgICAgInBsYW5uZWRDb21wbGV0aW9uRGF0ZSI6ICIyMDE3LTEwLTA2VDA5OjAwOjAwLjAwMC0wNjAwIiwKICAgICAgICAiZW50ZXJlZEJ5SUQiOiAiNTQ0ODIwZGYwMDAwMTQyMzYyNzQxZmMwYzM2OGRlMTkiLAogICAgICAgICJvd25lcklEIjogIjU0NDgyMGRmMDAwMDE0MjM2Mjc0MWZjMGMzNjhkZTE5IiwKICAgICAgICAidGVtcGxhdGVJRCI6IG51bGwsCiAgICAgICAgInByaW9yaXR5IjogMCwKICAgICAgICAiY29tcGFueUlEIjogbnVsbCw8CiAgICAgICAgInBvcnRmb2xpb0lEIjogbnVsbCwKICAgICAgICAicmVmZXJlbmNlTnVtYmVyIjogMTg5NCwKICAgICAgICAibGFzdFVwZGF0ZWRCeUlEIjogIjU0NDgyMGRmMDAwMDE0MjM2Mjc0MWZjMGMzNjhkZTE5IiwKICAgICAgICAiY3VzdG9tZXJJRCI6ICI1NDQ4MjBkZjAwMDAxMzViNzcxOWRjY2E2NTQzOTFmNiIsCiAgICAgICAgImN1cnJlbmN5IjogbnVsbCwKICAgICAgICAiY2F0ZWdvcnlJRCI6IG51bGwsCiAgICAgICAgInN0YXR1cyI6ICJDVVIiLAogICAgICAgICJwYXJhbWV0ZXJWYWx1ZXMiOiB7fQogICAgfQ=="
}
Verouderde methode voor het opvragen van alle abonnementen op gebeurtenissen
Het volgende API eindpunt is afgekeurd en zou niet voor nieuwe implementaties moeten worden gebruikt. Wij adviseren ook overbrengend oude implementaties aan de methode in de het Vragen van de Abonnementen van de Gebeurtenis hierboven beschreven sectie.
U kunt alle gebeurtenisabonnementen voor een klant zoals die door de sessionID waarde wordt gespecificeerd vragen. De aanvraagsyntaxis voor het aanbieden van alle gebeurtenisabonnementen voor een specifieke klant is de volgende URL:
GET https://<HOSTNAME>/attask/eventsubscription/api/v1/subscriptions/list
Kopballen van het Verzoek:
Codes van de Reactie:
Voorbeeld van reactieorgaan
[
{
"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_"
}
]