Справочник API

Контакты

Чтение, создание и обновление контактов устройства.

Определения типов

bash
type Contact {
  id: ID!
  prefix: String!
  firstName: String!
  middleName: String!
  lastName: String!
  suffix: String!
  nickname: String!
  photoId: String!          # use GET /fs?id=<photoId>
  phoneNumbers: [ContactPhoneNumber!]!
  emails: [ContentItem!]!
  addresses: [ContentItem!]!
  events: [ContentItem!]!   # birthdays, anniversaries
  source: String!           # account type e.g. "com.google"
  starred: Boolean!
  contactId: ID!
  thumbnailId: String!
  notes: String!
  groups: [ContactGroup!]!
  organization: Organization
  websites: [ContentItem!]!
  ims: [ContentItem!]!
  ringtone: String!
  updatedAt: String!
}

type ContactPhoneNumber {
  value: String!
  type: Int!     # 1=home 2=mobile 3=work
  label: String!
  normalizedNumber: String!
}

type ContentItem {
  value: String!
  type: Int!
  label: String!
}

type Organization {
  company: String!
  title: String!
}

type ContactGroup {
  id: ID!
  name: String!
  contactCount: Int!
}

type ContactSource {
  name: String!
  accountType: String!
}

input ContactInput {
  firstName: String
  lastName: String
  phoneNumbers: [ContactPhoneNumberInput]
  emails: [ContentItemInput]
  organization: OrganizationInput
}

Операции

query

contacts

Поиск контактов. Оставьте запрос пустым, чтобы перечислить все.

bash
query GetContacts($offset: Int!, $limit: Int!, $query: String!) {
  contacts(offset: $offset, limit: $limit, query: $query) {
    id firstName lastName phoneNumbers { value type }
    emails { value } source starred updatedAt
  }
}
query

contactCount

Подсчитайте контакты, соответствующие запросу.

bash
query GetContactCount($query: String!) {
  contactCount(query: $query)
}
query

contactSources

Перечислите доступные источники учётных записей контактов.

bash
query GetContactSources {
  contactSources { name accountType }
}
query

contactGroups

Перечислите все группы контактов.

bash
query GetContactGroups {
  contactGroups { id name contactCount }
}
mutation

createContact

Создайте новый контакт.

bash
mutation CreateContact($input: ContactInput!) {
  createContact(input: $input) { id firstName lastName phoneNumbers { value } }
}
mutation

updateContact

Обновите существующий контакт. Изменяются только предоставленные поля.

bash
mutation UpdateContact($id: ID!, $input: ContactInput!) {
  updateContact(id: $id, input: $input) { id firstName lastName updatedAt }
}
mutation

deleteContacts

Удалите все контакты, соответствующие запросу.

bash
mutation DeleteContacts($query: String!) {
  deleteContacts(query: $query)
}
mutation

createContactGroup

Создайте группу контактов в определённой учётной записи.

bash
mutation CreateContactGroup($name: String!, $accountName: String!, $accountType: String!) {
  createContactGroup(name: $name, accountName: $accountName, accountType: $accountType) {
    id name contactCount
  }
}
mutation

updateContactGroup

Переименуйте группу контактов.

bash
mutation UpdateContactGroup($id: ID!, $name: String!) {
  updateContactGroup(id: $id, name: $name) { id name }
}
mutation

deleteContactGroup

Удалите группу контактов. Контакты в группе не удаляются, только убираются из группы.

bash
mutation DeleteContactGroup($id: ID!) {
  deleteContactGroup(id: $id)
}