Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel3

Типы данных

Response

...

true – успешный ответ
false – ошибка

...

Запросы к серверу

Все запросы отправляются как POST запросы с содержанием "application/json". В ответ сервер всегда возвращает HTTP 200 OK и с содержанием "application/json". Единственное исключение — это методы, которые работают с файлам. В теле ответа содержится информация об успешности запроса, результат или ошибка. Для результата может быть приложен граф связанных объектов. Например, если в результате вернулось сообщение в чате, в графе связанных объектов будет пользователь, который отправил это сообщение. Данных подход позволяет снизить объем дублируемых данных в ответах.

Пример запроса:

Code Block
POST /public/api/v1/chats/channel/send/support HTTP/1.1
Host: dev.iqstore.ru
Connection: keep-alive
Content-Length: 65
Origin: http://dev.iqstore.ru
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36
Content-Type: application/json
Cookie: client-session=973b38b354a508bf13244b2655077895c78f1e86.aaaa7e84433b0901c502a5f7d38c71ee

{"LocalId":1518171256447,"Payload":"text","Text":"Привет!"}


Пример ответа:

Code Block
HTTP/1.1 200 OK
Server: nginx/1.11.13
Date: Fri, 09 Feb 2018 10:16:21 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Accept, Accept-Encoding, Accept-Language, Access-Control-Request-Headers, Access-Control-Request-Method, Authorization, Cache-Control, Connection, Content-Type, Cookie, Host, Origin, Pragma, Referer, X-Requested-With, User-Agent
Access-Control-Allow-Methods: GET, HEAD, POST, OPTIONS
Access-Control-Allow-Origin: http://dev.iqstore.ru
Pragma: no-cache
Cache-Control: private, must-revalidate
Content-Encoding: gzip


{
  "OK": true,
  "Error": null,
  "Result

Пример успешного ответа:

Code Block
{
  "OK": true,
  "Error": null,
  "Result": [
    {
      "Id": 504,
      "ChatId": 10,
      "EventId": 3614,
      "Author": "user",
      "UserId": 12,
      "Payload": "text",
      "Text": "Добрый день!",
      "CreatedAt": 1500970393387,
    }
  ],
  "Rels": {
    "Users": [
      {
        "Id": 12252,
        "NameChatId": "Оператор"10,
        "EmailLocalId": "operator@iqstore.ru"1498085875116,
        "CreatedAtEventId": 15009701423221649,
        "UpdatedAtTicketMessageId": 1507204200866null,
       }"Author": "client",
    ]
  }
}

Пример ответа с ошибкой:

Code Block
{
  "OKClientId": false11,
      "ErrorUserId": {null,
      "CodePayload": "not_foundtext",
      "Text": "ОбъектЗдравствуйте!",
 не найден"
  }
}

Сервисы

Чаты

Информация о чате

...

Пример ответа:

Code Block
languagejs
{
  "OKReceived": true,
      "ErrorRead": nulltrue,
  "Result": {
    "IdPushed": 10false,
      "ProjectIdCreatedAt": 11498085875206,
      "ClientIdReceivedAt": 111498085920218,
      "ChannelIdReadAt": 11498085920218,
      "TicketIdMy": 68,true
    "EventId": 3645},
    {
 "ClientUnread": 5,
    "CreatedAtId": 1498085875177253,
      "ChangedAtChatId": 151809106188010,
    },
  "RelsLocalId": {1498085875247,
      "ClientsEventId": [1626,
      {
   "TicketMessageId": null,
      "IdAuthor": 11"system",
        "ProjectIdClientId": 1null,
        "CompanyIdUserId": 2null,
        "TypePayload": "crmnotice",
        "NameText": "Дмитрий Менделеев",
        "OnlineReceived": truefalse,
        "CustomerIdRead": 5false,
        "ChannelIdPushed": nullfalse,
        "TelegramIdCreatedAt": null1498085875247,
        "FacebookIdReceivedAt": null,
        "VKIdReadAt": null,
        "TotalTicketsMy": 2false
    },
    {
      "TotalOpenTicketsId": 1254,
        "CreatedAtChatId": 149808586687310,
        "UpdatedAtLocalId": 15181649188351498085879130,
        "SeenAtEventId": 15181649188351633,
        "MessagedAtTicketMessageId": null,
        "IntegrationIdAuthor": "10user",
      }"ClientId": null,
    ]
  }
}

Отправка уведомления о том, что пользователь печатает сообщение

...

Пример ответа:

Code Block
languagejs
{
  "OK"UserId": true4,
      "ErrorPayload": null"text",
      "ResultText": null "Добрый день!",
   "Rels": null
}

Получение истории сообщений в чате

Сообщения в чате возвращаются в обратном порядке по дате, сначала новые.

...

ПараметрТипОбязательныйКомментарий
Limitint32ДаКоличество сообщений
MaxIdint64НетАйди последнего сообщения в прошлом ответе истории

...

Пример запроса:

Code Block
languagejs
{
  "LimitReceived": 10true,
   "MaxId": 1234
}

Пример ответа:

Code Block
languagejs
{
  "OKRead": true,
      "ErrorPushed": nullfalse,
  "Result": [
    {"CreatedAt": 1498085879130,
      "IdReceivedAt": 5041498085879272,
      "ChatIdReadAt": 101498085879302,
      "LocalIdMy": 1500970393387,false
    }
  ],
  "EventIdRels": 3614,{
      "TicketMessageIdClients": null,
 [
      {
        "AuthorId": "user"11,
        "ClientIdProjectId": null1,
        "UserIdCompanyId": 122,
        "PayloadType": "textcrm",
        "TextName": "ДобрыйДмитрий день!Менделеев",
        "ReceivedOnline": falsetrue,
        "ReadCustomerId": false5,
        "PushedChannelId": truenull,
        "CreatedAtTelegramId": 1500970393387null,
        "ReceivedAtFacebookId": null,
        "ReadAtVKId": null,
        "MyTotalTickets": false2,
    }
  ],
  "RelsTotalOpenTickets": {1,
    "Clients": [
      {"CreatedAt": 1498085866873,
        "IdUpdatedAt": 111518171379854,
        "ProjectIdSeenAt": 11518171379854,
        "CompanyIdMessagedAt": 2null,
        "TypeIntegrationId": "crm",10"
      }
    ],
    "NameFiles": "Дмитрий Менделеев", [
      {
        "OnlineId": true"1705a928-0d7a-11e8-b187-13b6ccbb5d10.txt",
        "CustomerIdType": 5"file",
        "ChannelIdOwner": null"client",
        "TelegramIdOwnerClientId": null11,
        "FacebookIdClientId": null,
        "VKIdUserId": null1,
        "TotalTicketsName": 2"oci8-sigsegv.txt",
        "TotalOpenTicketsPath": 1"clients/11/11/1705a928-0d7a-11e8-b187-13b6ccbb5d10.txt",
        "CreatedAtSize": 14980858668735356,
        "UpdatedAtImageWidth": 1518165344742null,
        "SeenAtImageHeight": 1518165344742null,
        "MessagedAtContentType": null"",
        "IntegrationIdCreatedAt": "10"1518167865822
      }
    ],
    "Users": [
      {
        "Id": 121,
        "Name": "ОператорИван Коробков",
        "Email": "operator@iqstorei.korobkov@iqstore.ru",
        "Position": "ОператорТехнический директор",
        "RoleId": 21,
        "AvatarId": null"e83220a3-56cb-11e7-b21f-6109cf735b0f.png",
        "Online": falsetrue,
        "Deleted": false,
        "TotalAssignedTickets": 01,
        "CreatedAt": 15009701423221491321126034,
        "UpdatedAt": 15072042008661518171379292,
        "LastSeenAt": 1518171379292,
        "AssignedAt": 15009704176751518166787715,
        "DisplayName": "ОператорИван Коробков"
      }
    ]
  }
}

Авторизация запросов

Для авторизации запросов к серверу используется токен сессии, который клиент получает после авторизации во внешней системе. Токен автоматически проставляется в Cookie. Если нужно, его также можно передавать отдельным заголовком Authorization.

Cookie: client-session ${session-token}

Code Block
POST /public/api/v1/chats/channel/send/support HTTP/1.1
Host: dev.iqstore.ru
Connection: keep-alive
Content-Length: 65
Origin: http://dev.iqstore.ru
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36
Content-Type: application/json
Cookie: client-session=973b38b354a508bf13244b2655077895c78f1e86.aaaa7e84433b0901c502a5f7d38c71ee

{"LocalId":1518171256447,"Payload":"text","Text":"Привет!"}

Authorization: Client ${session-token}

Code Block
POST /public/api/v1/chats/channel/send/support HTTP/1.1
Host: dev.iqstore.ru
Connection: keep-alive
Content-Length: 65
Origin: http://dev.iqstore.ru
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36
Content-Type: application/json
Authorization: Client 973b38b354a508bf13244b2655077895c78f1e86.aaaa7e84433b0901c502a5f7d38c71ee

{"LocalId":1518171256447,"Payload":"text","Text":"Привет!"}