API выгрузок основано на спецификации JSON Feed, которую поддерживают многие RSS-читалки. Для тех, которые не поддерживают, используйте адрес “RSS/Atom”
Для того, чтобы выгрузить ответы на опрос, сделайте GET-запрос к адресу ленты. У каждого опроса этот адрес отличается. Его можно увидеть на странице /dashboard/questionnaire/[id]/feeds
после создания первого токена для авторизации. Ссылка на эту страницу также доступна на странице каждого опроса
Для этого введите название токена (например, “токен для дашборда”) в форме на странице /dashboard/questionnaire/[id]/feeds
и нажмите “Создать токен”. В списке появится ваш токен в формате xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Создавать токены могут все пользователи с доступом на чтение. Удалять токены могут только редактора опросов и пользователь, который создал токен
Способ авторизации зависит от того, как вы обращаетесь к адресу ленты (во всех примерах, вместо xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
, используйте один из ваших токенов)
Программно — при запросе добавьте хэдер Authorization: Bearer [token]
. Например:
import requests
# replace with your token
token = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
response = requests.get(
'https://asky.guru/dashboard/questionnaire/5RCeO7LNp5Xg/answers.feed.json',
headers=dict(Authorization='Bearer ' + token),
)
answers = response.json()['items']
Через браузер или RSS-читалку — в качестве логина используйте _
(символ подчёркивания), а в качестве пароля — токен. Некоторые RSS-читалки не поддерживают ввод логина/пароля пользователем. Для них, допишите _:[token]@
перед доменом адреса ленты. Например:
https://_:[email protected]/dashboard/questionnaire/5RCeO7LNp5Xg/answers.feed.json
Данные в ленте отдаются в формате JSON c такими ключами:
version
— строка — версия используемой JSON Feed спецификацииtitle
— строка — название лентыdescription
— строка — текст вопросаhome_page_url
— строка — ссылка на страницу опросаfeed_url
— строка — ссылка на первую страницу лентыnext_url
— опциональная строка — ссылка на следующую страницу лентыitems
— список объектов — ответы на опрос. Формат объектов описан ниже_askyguru
— объект — дополнительная информация об опросе, полезная для автоматизации
title
— строка — название опросаКлючи ответа (объектов в ключе items
):
id
— строка — идентификатор ответаurl
— строка — ссылка на страницу ответаcontent_text
и content_html
— строка — человекочитаемый текст ответа. Ответ, который можно использовать программно, находится в ключе _askyguru.action
date_published
— строка — дата ответа в формате RFC 3339, например 2017-12-21T21:20:36+00:00
external_url
— опциональная строка — ссылка на страницу, на которой был оставлен ответauthor
— объект — информация об авторе ответа
name
— строка — имя или идентификатор автораurl
— строка — ссылка на страницу автора_askyguru
— опциональный объект — дополнительная информация об авторе, полезная для автоматизации
remote_id
— опциональная строка — идентификатор автора на вашем сайте_askyguru
— объект — дополнительная информация об ответе, полезная для автоматизации
responder_id
— строка — идентификатор автора внутри Askygurureferer
— опциональная строка — ссылка на страницу, на которой был оставлен ответremote_id
— опциональная строка — идентификатор автора на вашем сайтеaction
— объект — нормализированный ответ. Наличие ключей зависит от типа вопроса
choice
— опциональный объект — выбор одного из вариантов ответа
code
— строка — код вариантаtext
— строка — текст, который видел автор при выборе ответаinput
— опциональная строка — текст произвольного ответа
Возможны и другие ключи, но на них не стоит полагаться, так как они могут поменятьсяДля загрузки следующей страницы ответов, используйте адрес из ключа next_url
. Если ключа нет, то текущая страница — последняя
Для импорта в сервисы, которые не поддерживают JSON Feed (например, IFTTT), используйте ссылку “RSS/Atom”, указанную рядом с каждым вашим токеном. Пожалуйста, не используйте её для написания аналитик и своего кода, так как ответы в RSS/Atom-ленте отдаются в менее подходящем для них формате