Всем привет! Сегодня публикуем статью от разработчика Андрея, в которой он рассматривает, как пошагово настроить REST API подключение к SurveyMokey в Qlik Sense.

SurveyMonkey — популярный сервис для проведения опросов. На одном из проектов нам нужно было извлечь и проанализировать в Qlik Sense 5 миллионов строк опросов. Если у вас тоже есть такой источник данных, я сэкономлю вам день на то, чтобы разобраться с особенностями настройки REST подключения к API SurveyMonkey.

SurveyMonkey Коннектор vs. REST API SurveyMonkey

Qlik разработали специальный SurveyMonkey коннектор, который всю настройку REST-подключения делает за вас. Вот ссылка на более подробное описание самого коннектора: https://www.surveymonkeysv.surveymonkey.com/apps/7PF6v7iygyF7gbRk_2BCEZ7A_3D_3D/details/

Но там есть один, но большой «подводный камень». В SurveyMonkey существует такое понятие, как ветвящиеся вопросы. Это когда следующий вопрос зависит от предыдущего. И вот если у вас в опросах есть такая логика, вариант с SurveyMonkey Коннектором вам не подходит и нужно подключаться через REST API SurveyMonkey.

Про подключение через SurveyMonkey Коннектор даже писать нечего – там все довольно просто, а вот с REST подключением, как и всегда, есть свои тонкости. О них я дальше и буду рассказывать. Сразу предупрежу – в SurveyMonkey есть лимит в 500 запросов в день через API (это бесплатно, за деньги можно больше). А на проекте нам надо было выгрузить 5 миллионов строк, не более тысячи строк в одном запросе. Мы написали в поддержку SurveyMonkey письмо с просьбой расширить лимит запросов на небольшой срок, и в итоге они согласились расширить лимит до 4000 тысяч запросов в день на 2 недели! Супер!

Итак, для настройки REST подключения к API SurveyMonkey нам необходимо:

  1. Создать приложение в SurveyMonkey и настроить разрешения на чтение
  2. Получить постоянный токен доступа к API SM (потребуется утилита c URL)
  3. Настроить REST-подключение в Qlik Sense

Создаем приложение SurveyMonkey и даем необходимые разрешения

Перейдем по ссылке https://developer.surveymonkey.com/apps/ и нажмем на кнопку «Add a New App»:

Вводим название приложения (любое) и выбираем «Private App»:

После этого заходим в раздел «Settings» и настраиваем разрешения:

Нажимаем на «Upgrade Scopes». Первый шаг готов, идем дальше!

Получаем постоянный токен доступа к API SurveyMonkey

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

Для получения постоянного OAuth-токена нам потребуются следующие данные (описания параметров взял отсюда):

  1. OAuth Redirect URL — это URL, на который сервис будет перенаправлять пользователя после авторизации (или отказа в авторизации) вашего приложения
  2. Client ID — представляет собой публично доступную строку, которая используется API сервиса для идентификации приложения, а также используется для создания авторизационных URL для пользователей
  3. Secret — используется для аутентификации подлинности приложения для API сервиса, когда приложение запрашивает доступ к аккаунту пользователя. Секрет клиента должен быть известен только приложению и API
  4. Access Token — на данном этапе бесполезен (почему?— не знаю…), потребуется получать его самостоятельно, для этого нам и потребуется утилита cURL

Далее нам надо получить временный токен. Для этого переходим по ссылке:

https://api.surveymonkey.com/oauth/authorize?response_type=code&redirect_uri=YOUR_REDIRECT_URI&client_id=YOUR_CLIENT_ID

Где вместо YOUR_REDIRECT_URI и YOUR_CLIENT_ID подставляем свои значения.

В результате в адресной строке мы получим в URL-ссылку типа:

https://www.surveymonkey.com/dashboard/?code=AUTH_CODE

где AUTH_CODE— временный код доступа к API SurveyMonkey, работающий всего несколько минут.

Далее, устанавливаем cURL (скачать его можно по ссылке: https://curl.haxx.se/download.html), заходим в командную строку и пишем команду вида:

где

  • YOUR_CLIENT_SECRET – ваш Secret,
  • AUTH_CODE – ваш временный код доступа к API SM,
  • YOUR_REDIRECT_URI – ваш OAuth Redirect URL
  • YOUR_CLIENT_ID – ваш Client ID

После выполнения команды Вы получите постоянный токен доступа к API SurveyMonkey, в командной строке это выглядит следующим образом:

Запишите его, ну или запомните, если у вас хорошая память 😀

Настраиваем REST-подключение в Qlik Sense

Хочу вас обрадовать, это последний шаг в настройке REST-подключения.

Заходим в редактор скрипта Qlik Sense и создаем новое подключение:

Выбираем REST и настраиваем как на картинках ниже:

Тестируем подключение и делаем пробную выборку:

На сегодня это все! Спасибо за внимание, надеюсь статья окажется кому-то полезной 🙂

Автор: Андрей Белобородов