Как связать данные вызовов RingCentral и данные постов Glip по пользователю? - PullRequest
0 голосов
/ 10 ноября 2018

Как я могу связать данные вызова из RingCentral API с пользовательскими данными в Glip API. Насколько я могу судить, единственное перекрытие - это собственные имена, расположенные в полях журналов вызовов to и from (которые не всегда присутствуют), которые можно сопоставить с адресом электронной почты, а затем с пользователем Glip. , Это похоже на очень косвенный способ идти о вещах. Существуют ли идентификаторы или что-то подобное, чтобы связать два API? В частности, я хотел бы знать, является ли звонок, поступающий или идущий от человека, также пользователем Glip в моей организации.

Пример API журнала вызовов RingCentral

https://developer.ringcentral.com/api-reference#Call-Log-loadCompanyCallLog

GET /restapi/v1.0/account/~/call-log

{
    "uri": "https://platform.devtest.ringcentral.com/restapi/v1.0/account/11111111/call-log?view=Simple&showBlocked=true&withRecording=false&dateFrom=2018-11-09T07:00:00.000Z&page=1&perPage=100",
    "records": [
        {
            "uri": "https://platform.devtest.ringcentral.com/restapi/v1.0/account/11111111/call-log/abcdef0123456789?view=Simple",
            "id": "abcdef0123456789",
            "sessionId": "1234567890",
            "startTime": "2018-11-10T00:52:07.020Z",
            "duration": 11,
            "type": "Voice",
            "direction": "Inbound",
            "action": "Phone Call",
            "result": "Missed",
            "to": {
                "phoneNumber": "+16505550100"
            },
            "from": {
                "phoneNumber": "+12155550101",
                "location": "Philadelphia, PA"
            }
        },

Пример API Glip Post

https://developer.ringcentral.com/api-reference#Posts-listGlipGroupPosts

GET /restapi/v1.0/glip/groups/{groupId}/posts

{
  "records":[
    {
      "id":"1542094852",
      "groupId":"155654",
      "type":"TextMessage",
      "text":"",
      "creatorId":"glip-29507587",
      "addedPersonIds":null,
      "creationTime":"2018-05-31T14:45:16.822Z",
      "lastModifiedTime":"2018-05-31T14:45:16.822Z",
      "attachments":null,
      "activity":null,
      "title":null,
      "iconUri":null,
      "iconEmoji":null,
      "mentions":null
    }
  ]
}

1 Ответ

0 голосов
/ 10 ноября 2018

Пользователи идентифицируются в журнале вызовов extensionId и Glip personId, которые имеют одинаковое значение, когда пользователь является пользователем компании.

  • В API журнала вызовов RingCentral каждый пользовательидентифицируется как extensionId.
    • В API журнала вызовов компании (/restapi/v1.0/account/{accountId}/call-log) вы будете получать журналы вызовов для всех пользователей и, чтобы идентифицировать вызовы для каждого пользователя, вам необходимо запросить подробный вид, добавив строку запроса view=Detailedпараметра, а затем найдите extensionId в массиве вызова legs, поскольку в вызове могут присутствовать несколько пользователей.Каждая ветвь будет иметь свойство extension со свойствами extensionId и HATEOAS uri для извлечения информации для пользователя.
    • В API журнала пользовательских вызовов (/restapi/v1.0/account/{accountId}/extension/{extensionId}/call-log) extensionIdявно указано в пути URL.
  • В API Glip каждый пользователь идентифицируется как personId.personId отображается как creatorId и в других местах в Glip API.
    • Если пользователь Glip также является пользователем RingCentral, значение Glip personId совпадает с extensionId, например, 12345678
    • Когда пользователь Glip является гостем, а неприсутствует в учетной записи RingCentral, значение Glip personId имеет префикс glip-, например, glip-12345678

Вот пример подробной записи в журнале вызовов компании:

GET /restapi/v1.0/account/~/call-log?view=Detailed

{
  "uri":"https://platform.devtest.ringcentral.com/restapi/v1.0/account/11111111/call-log?view=Detailed&showBlocked=true&withRecording=false&dateFrom=2018-11-09T07:37:00.000Z&page=1&perPage=100",
  "records":[
    {
      "uri":"https://platform.devtest.ringcentral.com/restapi/v1.0/account/11111111/call-log/abcdef0123456789?view=Detailed",
      "id":"abcdef0123456789",
      "sessionId":"19923257004",
      "startTime":"2018-11-10T00:52:07.020Z",
      "duration":11,
      "type":"Voice",
      "direction":"Inbound",
      "action":"Phone Call",
      "result":"Missed",
      "to":{
        "phoneNumber":"+16505550100"
      },
      "from":{
        "phoneNumber":"+12155550101",
        "location":"Philadelphia, PA"
      },
      "transport":"PSTN",
      "lastModifiedTime":"2018-11-10T00:52:40.001Z",
      "billing":{
        "costIncluded":0,
        "costPurchased":0
      },
      "legs":[
        {
          "startTime":"2018-11-10T00:52:07.020Z",
          "duration":11,
          "type":"Voice",
          "direction":"Inbound",
          "action":"Phone Call",
          "result":"Missed",
          "to":{
            "phoneNumber":"+12675550100"
          },
          "from":{
            "phoneNumber":"+12155550101",
            "location":"Philadelphia, PA"
          },
          "transport":"PSTN",
          "billing":{
            "costIncluded":0,
            "costPurchased":0
          },
          "legType":"Accept",
          "master":true
        },
        {
          "startTime":"2018-11-10T00:52:07.050Z",
          "duration":11,
          "type":"Voice",
          "direction":"Inbound",
          "action":"Phone Call",
          "result":"Missed",
          "to":{
            "phoneNumber":"+12679304030",
            "name":"Sales Queue"
          },
          "from":{
            "phoneNumber":"+12155550101",
            "location":"Philadelphia, PA"
          },
          "extension":{
            "uri":"https://platform.devtest.ringcentral.com/restapi/v1.0/account/11111111/extension/22222222",
            "id":22222222
          },
          "transport":"PSTN",
          "legType":"Accept"
        },
        {
          "startTime":"2018-11-10T00:52:15.220Z",
          "duration":3,
          "type":"Voice",
          "direction":"Outbound",
          "action":"FindMe",
          "result":"Accepted",
          "to":{
            "phoneNumber":"+16505550100",
            "location":"Redwood City, CA"
          },
          "from":{
            "phoneNumber":"+12675550100",
            "name":"Tiger RingForce"
          },
          "extension":{
            "uri":"https://platform.devtest.ringcentral.com/restapi/v1.0/account/111111111/extension/33333333",
            "id":33333333
          },
          "transport":"PSTN",
          "legType":"FindMe"
        },
        {
          "startTime":"2018-11-10T00:52:15.257Z",
          "duration":3,
          "type":"Voice",
          "direction":"Outbound",
          "action":"FindMe",
          "result":"Accepted",
          "to":{
            "phoneNumber":"+18185550100",
            "location":"North Hollywood, CA"
          },
          "from":{
            "phoneNumber":"+12675550100",
            "name":"Tiger RingForce"
          },
          "extension":{
            "uri":"https://platform.devtest.ringcentral.com/restapi/v1.0/account/130709004/extension/130836004",
            "id":130836004
          },
          "transport":"PSTN",
          "legType":"FindMe"
        }
      ]
    }
  ]
}

Чтобы отобразить пользователя Glip, просто сопоставьте его с пользователями Glip с помощью personId, который соответствует журналу вызовов extensionId.

...