window.askyguru
window.askyguru("create", options)
Инициация Askyguru на странице. После неё будет показан попап с подходящим опросом, если такой существует
options
— объект с параметрами. Обязательным является только options.token
options.token
— строка — токен вашей команды. Указан на странице Доменыoptions.onSuccess
— функция без аргументов — коллбек, который будет вызван после успешной инициации скрипта (именно инициации, попап может быть не показан по той или иной причине)options.onFailure
— функция с аргументом err: { reason: String }
— коллбек, который будет вызван после неуспешной инициации скрипта. В значении err.reason
будет код с причиной ошибки инициации. Список кодов указан в Коды ошибок onFailure
options.language
- строка в формате ISO 639-1 - язык, на котором показывать опрос. askyguru.js
так же старается автоматически определить язык, по значению <html lang>
и по настройкам браузера посетителя сайтаoptions.colorTheme
— строка — название цветовой темы попапа. Существующие на данный момент цветовые темы: light
, chalkboard
, dark
. Посмотреть на их внешний вид можно на странице Цветаoptions.verticalPadding
и options.horizontalPadding
— строка — отступы попапа относительно угла, в котором он появится (по умолчанию, в правом нижнем)options.horizontalAnchor
— "right"
(по умолчанию) или "left"
— угол, в котором появится попапoptions.user
- объект — параметры для привязки посетителей вашего проекта к ответам. Для привязки необходимо указать оба параметра
options.user.id
— число/строка — идентификатор посетителя вашего проекта. Пример: 2915
options.user.hash
— строка — hmac
по алгоритму SHA3-256 от вашего секрета и идентификатора пользователя (в виде строки). Значение секрета может увидеть владелец команды на странице Команда:warning: Держите значение secret
в секрете. Если ваш secret
утёк, то свяжитесь с нами
Пример на Python:
import json
import hmac
import hashlib
# change values to yours
# user_id = ...
# secret = ...
h = hmac.new(
bytes(secret, "ascii"),
msg=bytes(str(user_id), "ascii"),
digestmod=hashlib.sha3_256,
)
options_user = json.dumps(dict(
id=user_id,
hash=h
))
# for example, if your secret is "xasfasgf" and user's id is 2915,
# options_user should be
# {"id": 2915, "hash": "4e0923aa7d511ba8f7cc2e5c186bccb162ac423b9e8941513c46ba841287561b"}
onFailure
RUNTIME_EXCEPTION
- ошибка при выполнении askyguru.js
. Что-то пошло не так, напишите намNOT_SUPPORTED
- браузер не поддерживаетсяUNDEFINED_API_HOST
- неправильный адрес скрипта. Что-то пошло не так, напишите намNEVER_VISITED
- посетитель никогда не открывал страницу с скриптом (из-за чего его не удаётся идентифицировать, чтобы показать подходящие опросы)LIMITED_LOCALSTORAGE
- в браузере ограничен LocalStorageNO_QUESTIONNAIRES
- нет подходящих опросов. Возможные причины для этой ошибки:
ALREADY_ANSWERED
- посетитель уже ответил на опрос, который вы хотите отобразитьUNKNOWN_RESPONDER
- у посетителя отключены куки третьих сторон (из-за мы не можем его идентифицировать, чтобы показать подходящие опросы)QUESTION_REQUEST_EXCEPTION
- ошибка сервера при запросе доступных опросовINVALID_ARGUMENTS
- неправильные аргументы. Смотрите err.message
для подробностейUNKNOWN_METHOD
- вы пытаетесь вызвать неизвестный метод window.askyguru
. Возможно, браузер закешировал версию скрипта, в которой уже/ещё нет этого методаOCCUPIED_POPUP
- у посетителя уже открыт попап с опросом