Saltar para a documentação
SDK

Contactos

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

Todos os métodos

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)

Os vistos mais recentemente primeiro, com os contactos que nunca receberam email no fim. source é auto quando a linha foi escrita porque um membro enviou uma mensagem para esse endereço a partir do editor de mensagens da aplicação, o que é uma afirmação materialmente diferente de alguém o ter guardado. O correio recebido de um endereço não escreve nada, e um envio através desta API também não.

O livro de endereços pertence ao espaço de trabalho e não a uma pessoa, pelo que um contacto guardado por qualquer membro é o contacto que todos os membros e todas as chaves veem. create escreve source como manual e coloca o contacto na audiência predefinida no momento da escrita. Indique listas suas em audienceIds para o associar a elas na mesma chamada, o que também exige audiences:write, ou adicione o contacto mais tarde com openemail.audiences.addContact.

Os endereços são guardados em minúsculas e o cliente codifica o que passar, pelo que [email protected] chega à linha certa. O endereço é a identidade, pelo que update não o pode alterar: mudar um contacto de endereço é um delete seguido de um create.

Parâmetros: contacts.list

limitnumber
Quantos contactos devolver por página: um inteiro de 1 a 200, com 50 por predefinição. O valor é convertido, pelo que `'100'` vindo de uma query string é aceite, e um valor fora do intervalo dá 422 em vez de ser ajustado ao limite.
cursorstring
O `nextCursor` da página anterior. Nunca construa um manualmente: um cursor que refere um contacto que já não existe dá 400 `invalid_cursor`, o que significa que o seu estado de paginação está desatualizado e o percurso deve recomeçar sem cursor.
sourceContactSource
`'manual'` para os contactos que alguém guardou intencionalmente, `'auto'` para os que o editor de mensagens da aplicação registou. Omita-o para obter todo o livro de endereços.

Resposta: ContactResource

contacts.list resolve para um Page<ContactResource>, pelo que as linhas estão em page.items e o percurso segue page.nextCursor enquanto page.hasMore for true. get, create e update resolvem cada um para um ContactDetailResource, a mesma linha mais audiences. O livro de endereços não tem limite, e é por isso que esta rota pagina em vez de devolver um array que parava silenciosamente nas 200 linhas.

object'contact'
Sempre a string `contact`, tanto nas linhas da lista como em `get`.
emailstring
O endereço, convertido para minúsculas na escrita para que `[email protected]` e `[email protected]` sejam um só contacto, e o identificador que todos os métodos de contactos recebem, já que nenhum id de contacto é exposto. As linhas pertencem ao espaço de trabalho e não ao membro ou à chave que as escreveu, pelo que todos os membros e todas as chaves do espaço de trabalho leem e escrevem um único livro de endereços.
namestring | null
O nome de apresentação. É null quando nunca foi registado nenhum nome para o endereço. Uma escrita automática só inclui um quando o cabeçalho forneceu algo diferente do próprio endereço, e nunca pode substituir um nome que o utilizador escreveu.
source'manual' | 'auto' | (string & {})
`auto` significa que a linha foi escrita porque o utilizador enviou correio para esse endereço; `manual` significa que alguém o introduziu à mão, uma afirmação materialmente diferente, e um upsert nunca rebaixa `manual` para `auto`. O correio recebido de um endereço não escreve nenhuma linha, de propósito, pelo que alguém que apenas lhe escreveu não está aqui; a união permanece aberta porque a coluna é texto livre com `manual` como predefinição.
notesstring | null
Texto livre que alguém escreveu sobre esta pessoa, na aplicação ou através de `update`, nunca gerado. É null quando ninguém escreveu nada, e um null explícito em `update` limpa-o.
lastSeenAtstring | null
ISO-8601 UTC, atualizado sempre que um membro envia para esse endereço a partir do editor de mensagens da aplicação, e não quando chega correio dele, o que não escreve nada. É null num contacto guardado através de `create` que nunca recebeu email, e esses ficam em último lugar na ordem descendente por `lastSeenAt` que esta rota devolve.
audiencesArray<ContactAudienceResource>
Só em `get`, `create` e `update`, nunca nas linhas da lista. Todas as audiências a que o contacto pertence, como `{ id, name, builtin }`, incluindo a predefinida. `builtin` é `default` na audiência a que todos os contactos pertencem e null numa criada por alguém, por isso baseie a lógica nele e não no nome, que qualquer pessoa pode alterar.