Ga direct naar de documentatie
SDK

Contacten

`contacts.list`, `get`, `create`, `update` en `delete`.

Elke methode

usage.ts
const page = await openemail.contacts.list({ limit: 100 })  const contact = await openemail.contacts.get('[email protected]')   const saved = await openemail.contacts.create({    email: '[email protected]',    name: 'Grace Hopper',    notes: 'Met at the compiler workshop',  })   await openemail.contacts.update(saved.email, { notes: null })  await openemail.contacts.delete(saved.email)   console.log(page.items.length, page.hasMore, contact.source, contact.lastSeenAt)

Meest recent gezien eerst, met contacten die nooit gemaild zijn achteraan. source is auto wanneer de rij werd geschreven omdat een lid dat adres een bericht stuurde vanuit de composer in de app, wat een wezenlijk andere bewering is dan dat iemand het heeft opgeslagen. Mail die van een adres binnenkomt schrijft niets, en een verzending via deze API evenmin.

Het adresboek hoort bij de workspace en niet bij één persoon, dus een contact dat door welk lid dan ook is opgeslagen is het contact dat elk lid en elke sleutel ziet. create schrijft source als manual en zet het contact meteen bij het schrijven in de standaarddoelgroep. Noem eigen lijsten in audienceIds om ze in dezelfde aanroep toe te voegen, waarvoor ook audiences:write nodig is, of voeg het contact later toe met openemail.audiences.addContact.

Adressen worden in kleine letters opgeslagen en de client codeert het adres dat je meegeeft, dus [email protected] komt bij de juiste rij uit. Het adres is de identiteit, dus update kan het niet wijzigen: een contact verplaatsen is een delete en een create.

Parameters: contacts.list

limitnumber
Hoeveel contacten per pagina worden teruggegeven: een integer van 1 tot 200, standaard 50. De waarde wordt geconverteerd, dus `'100'` uit een querystring is prima, en een waarde buiten het bereik levert een 422 op in plaats van een afgekapte waarde.
cursorstring
De `nextCursor` van de vorige pagina. Bouw er nooit zelf een: een cursor die een contact noemt dat niet meer bestaat is een 400 `invalid_cursor`, wat betekent dat je paginastatus verouderd is en de doorloop zonder cursor opnieuw moet beginnen.
sourceContactSource
`'manual'` voor de contacten die iemand bewust heeft opgeslagen, `'auto'` voor die welke de composer in de app heeft vastgelegd. Laat het weg voor het hele adresboek.

Antwoord: ContactResource

contacts.list levert een Page<ContactResource> op, dus de rijen staan op page.items en de doorloop volgt page.nextCursor zolang page.hasMore waar is. get, create en update leveren elk één ContactDetailResource op: dezelfde rij plus audiences. Het adresboek is onbegrensd, en daarom pagineert deze route in plaats van een array terug te geven die stilletjes bij 200 stopte.

object'contact'
Altijd de string `contact`, zowel op de lijstrijen als op `get`.
emailstring
Het adres, bij het schrijven omgezet naar kleine letters, zodat `[email protected]` en `[email protected]` één contact zijn, en de sleutel die elke contacts-methode accepteert, aangezien er geen contact-id wordt blootgesteld. Rijen horen bij de workspace en niet bij het lid of de sleutel die ze schreef, dus elk lid en elke sleutel op de workspace leest en schrijft één adresboek.
namestring | null
De weergavenaam. Null wanneer er voor het adres nooit een naam is vastgelegd. Een automatische schrijfactie draagt er alleen een wanneer de header iets anders dan het adres zelf aanleverde, en die kan nooit een naam overschrijven die de gebruiker heeft ingetypt.
source'manual' | 'auto' | (string & {})
`auto` betekent dat de rij werd geschreven omdat de gebruiker mail naar dat adres stuurde; `manual` betekent dat iemand het met de hand heeft ingevoerd, een wezenlijk andere bewering, en een upsert degradeert `manual` nooit terug naar `auto`. Mail die van een adres binnenkomt schrijft bewust helemaal geen rij, dus iemand die je alleen ooit geschreven heeft staat hier niet in; de union blijft open omdat de kolom vrije tekst is met `manual` als standaard.
notesstring | null
Vrije tekst die iemand over deze persoon heeft geschreven, in de app of via `update`, nooit gegenereerd. Null wanneer niemand er een heeft geschreven, en een expliciete null op `update` wist hem.
lastSeenAtstring | null
ISO-8601 UTC, opgehoogd telkens wanneer een lid vanuit de composer in de app naar dat adres verstuurt, niet wanneer er mail van binnenkomt, wat niets schrijft. Null op een contact dat via `create` is opgeslagen en nooit gemaild is, en die sorteren achteraan in de aflopende `lastSeenAt`-volgorde die deze route teruggeeft.
audiencesArray<ContactAudienceResource>
Alleen op `get`, `create` en `update`, nooit op lijstrijen. Elke doelgroep waarin het contact zit als `{ id, name, builtin }`, de standaarddoelgroep inbegrepen. `builtin` is `default` op de doelgroep waar elk contact bij hoort en null op een die iemand heeft aangemaakt, dus vertak daarop in plaats van op de naam, die iedereen kan wijzigen.