Использование Curl для сброса данных журнала вызовов - PullRequest
0 голосов
/ 03 мая 2018

Я хочу получить данные вызова из RingCentral, используя скрипт оболочки и curl. Затем я собираюсь поместить это в ELK, чтобы создать панель управления с использованием Kibana. Тем не менее, я не знаю, что я делаю с API. У кого-нибудь есть место для меня или пример кода для этого?

В настоящее время я борюсь с использованием curl для аутентификации для получения токена. В настоящее время я продолжаю получать неподдерживаемый тип гранта. Я устанавливаю приложение в «Песочнице» и на «Сервер только без пользовательского интерфейса».

Я запустил это из коробки Centos 7, используя оболочку bash.

Вот код, который пытались:

curl -X POST "https://platform.devtest.ringcentral.com/restapi/oauth/token"; \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-u "my client id:my client secret" \
-d "username=username&password=password&extension=<extension>&grant_type=password"

Я оставил имя пользователя и пароль пустыми, потому что я не был уверен, что это было.

Выход выглядит следующим образом:

{
  "error" : "invalid_request",
  "error_description" : "Unsupported grant type",
  "errors" : [ {
    "errorCode" : "OAU-250",
    "message" : "Unsupported grant type"
  } ]
}./rctest1.sh: line 2: -H: command not found

1 Ответ

0 голосов
/ 04 мая 2018

Мне удалось воспроизвести вашу ошибку и устранить ее, удалив точку с запятой (;) после URL в вашей команде.

Объяснение

Точка с запятой создает две отдельные команды CLI вместо одной, поэтому при вызове у вас есть два запроса.

- Ваш запрос 1

$ curl -X POST "https://platform.devtest.ringcentral.com/restapi/oauth/token"

- Ваш запрос 2

$ -H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-u "my client id:my client secret" \
-d "username=username&password=password&extension=&grant_type=password"

- Ваш ответ 1

{
  "error" : "invalid_request",
  "error_description" : "Unsupported grant type",
  "errors" : [ {
    "errorCode" : "OAU-250",
    "message" : "Unsupported grant type"
  } ]
}

- Ваш ответ 2

./rctest1.sh: line 2: -H: command not found

- Команда тестирования

Вот простой тест, показывающий, как ОС пытается обработать две команды:

$ hello;world
-bash: hello: command not found
-bash: world: command not found

Решение

- Рабочий запрос

Вот рабочий запрос без точки с запятой:

$ curl -X POST "https://platform.devtest.ringcentral.com/restapi/oauth/token" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-u "my client id:my client secret" \
-d "username=username&password=password&extension=&grant_type=password"

- Рабочий ответ

Вот рабочий ответ:

{
  "access_token" : "myAccessToken",
  "token_type" : "bearer",
  "expires_in" : 3600,
  "refresh_token" : "myRefreshToken",
  "refresh_token_expires_in" : 604800,
  "scope" : "Meetings VoipCalling Glip SubscriptionWebhook Faxes Contacts RingOut SMS",
  "owner_id" : "11111111",
  "endpoint_id" : "22222222"
}
...