API: /meditations

Korrekted
Korrekted
Last updated 

Общее

Этот раздел API посвящён запросу данных о медитациях, т.е. экранах, на которых пользователь «миксует» зачитываемый рассказ и звук окружающей среды
  • вызов /meditations/list — позволяет получить перечень актуальных медитаций
  • вызов /meditations/all — позволяет получить перечень и наполнение актуальных медитаций
  • вызов /meditations/tags — позволяет получить список актуальных тегов медитаций
  • вызов /meditations/get — получает конкретную конфигурацию медитаций, ссылки на изображения, файлы для микширования звуков, их названия и т.д.
  • вызов /meditations/check — быстрая проверка доступности контента для пользователя (проверка наличия доступа или подписки к платному контенту)


/list

Описание: предоставляет информацию про все доступные медитации
Полный путь к методу: https://www.s1eep.app/api/meditations/list
Тип запроса: POST
Требования безопасности: API-ключ
Дополнительные ожидаемые параметры:
  • hash — сохранённый клиентом хеш с прошлого раза, в случае совпадения с актуальным (поле meditations_hash) будет пустой ответ, необязательно
Дополнительные возвращаемые параметры (в случае отсутствия или несовпадения переданного hash'а):
  • meditations — массив данных о медитациях, каждый элемент является словарём со следующими полями
    • id — идентификатор медитации, который нужно использовать при запросе о данных конкретной медитации
    • name — имя медитации для отображения в списке
    • tags — массив идентификаторов тегов медитации
    • paid — флаг true/false, индикатор платного контента
    • sort — порядковый номер контента в списке
    • reader — имя озвучивающего медитацию
    • image_meditation_url — полный URL для картинки, которая представляет медитацию
    • image_reader_url — полный URL для фотографии озвучивающего медитацию
    • meditation_hash — хэш конкретной медитации, чтобы при совпадении с ранее полученным ответом (если он был) не пересохранять контент
  • deleted_meditations — массив идентификаторов удалённых медитаций для синхронизации кеша
  • meditations_hash — хэш массива meditations, чтобы при совпадении с ранее полученным ответом (если он был) не перерисовывать экран
Пример ответа в случае несовпадения хеша:
{
    "_code": 200,
    "_msg": "OK",
    "_need_payment": false,
    "_data": {
        "meditations": [
            {
                "id": 6,
                "name": "Bedtime",
                "paid": false,
                "sort": 0,
                "tags": [
                    9,
                    10
                ],
                "reader": "Loula Taylor",
                "length_secs": 600,
                "image_meditation_url": "https://www.s1eep.app/meditations/2020/01/1578937060card12.jpg",
                "image_reader_url": "https://www.s1eep.app/readers/2019/11/1573830430reader.png",
                "meditation_hash": "7251c692fb5dda7d180352154bf08faf"
            },
            {
                "id": 10,
                "name": "Reconnect with your Spiritual Self",
                "paid": true,
                "sort": 1,
                "tags": [
                    11,
                    9,
                    12
                ],
                "reader": "Emma Devonshire",
                "length_secs": 1260,
                "image_meditation_url": "https://www.s1eep.app/stories/2019/11/1574921684Card_14@jpg.jpg",
                "image_reader_url": "https://www.s1eep.app/readers/2019/11/1573830461reader3.png",
                "meditation_hash": "cc21a57974084103087e16ddbe757834"
            },
            {
                "id": 11,
                "name": "Soothing Train Ride",
                "paid": true,
                "sort": 2,
                "tags": [
                    10,
                    9,
                    11,
                    14
                ],
                "reader": "Ben Whittingham",
                "length_secs": 1440,
                "image_meditation_url": "https://www.s1eep.app/stories/2019/11/1574921636Card_15@jpg.jpg",
                "image_reader_url": "https://www.s1eep.app/readers/2019/11/1573830466reader4.png",
                "meditation_hash": "464093cf8b2f6a69dbf34c2df9820736"
            },
            {
                "id": 12,
                "name": "Astral Projection Practice",
                "paid": true,
                "sort": 3,
                "tags": [
                    9,
                    11
                ],
                "reader": "Loula Taylor",
                "length_secs": 2400,
                "image_meditation_url": "https://www.s1eep.app/stories/2019/11/1574921608Card_16@jpg.jpg",
                "image_reader_url": "https://www.s1eep.app/readers/2019/11/1573830430reader.png",
                "meditation_hash": "b63c057bf2b6a84f9bc80c98b43e9896"
            },
            {
                "id": 13,
                "name": "Sleepy River Visualization",
                "paid": true,
                "sort": 4,
                "tags": [
                    13,
                    9,
                    14
                ],
                "reader": "Emma Devonshire",
                "length_secs": 1140,
                "image_meditation_url": "https://www.s1eep.app/stories/2019/11/1574921590Card_17@jpg.jpg",
                "image_reader_url": "https://www.s1eep.app/readers/2019/11/1573830461reader3.png",
                "meditation_hash": "11d4835c11989926b6802df026cc24ed"
            },
            {
                "id": 14,
                "name": "Lucid Dreaming Experience",
                "paid": true,
                "sort": 5,
                "tags": [
                    9,
                    10,
                    11,
                    14
                ],
                "reader": "Ruth Wayne",
                "length_secs": 840,
                "image_meditation_url": "https://www.s1eep.app/stories/2019/11/1574921574Card_18@jpg.jpg",
                "image_reader_url": "https://www.s1eep.app/readers/2019/11/1573830442reader2.png",
                "meditation_hash": "4e50a3018c7f7ed2c62598b4d94c6f55"
            },
            {
                "id": 15,
                "name": "Get to Sleep in Five Minutes",
                "paid": true,
                "sort": 6,
                "tags": [
                    9,
                    10,
                    11,
                    14
                ],
                "reader": "Loula Taylor",
                "length_secs": 360,
                "image_meditation_url": "https://www.s1eep.app/stories/2019/11/1574921544Card_19@jpg.jpg",
                "image_reader_url": "https://www.s1eep.app/readers/2019/11/1573830430reader.png",
                "meditation_hash": "cecb599f8fa4a0f19300a3cf63f5dc00"
            },
            {
                "id": 16,
                "name": "Sleepy Ocean Visualization",
                "paid": true,
                "sort": 7,
                "tags": [
                    13,
                    9,
                    14
                ],
                "reader": "Loula Taylor",
                "length_secs": 1320,
                "image_meditation_url": "https://www.s1eep.app/stories/2019/11/1574921775Card_20@jpg.jpg",
                "image_reader_url": "https://www.s1eep.app/readers/2019/11/1573830430reader.png",
                "meditation_hash": "cdfe2fa767c06bde58a10d088cf0e9f1"
            },
            {
                "id": 8,
                "name": "Unfazed by the Storm of Anxiety",
                "paid": true,
                "sort": 8,
                "tags": [
                    9,
                    11,
                    14
                ],
                "reader": "Emma Devonshire",
                "length_secs": 1200,
                "image_meditation_url": "https://www.s1eep.app/stories/2019/11/1574760296Card_11@jpg.jpg",
                "image_reader_url": "https://www.s1eep.app/readers/2019/11/1573830461reader3.png",
                "meditation_hash": "456a3b6639180bad844bed3c7e1a8004"
            },
            {
                "id": 7,
                "name": "Deep Sleep",
                "paid": true,
                "sort": 9,
                "tags": [
                    9,
                    10,
                    13
                ],
                "reader": "Ruth Wayne",
                "length_secs": 1320,
                "image_meditation_url": "https://www.s1eep.app/stories/2019/11/1574760314Card_13@jpg.jpg",
                "image_reader_url": "https://www.s1eep.app/readers/2019/11/1573830442reader2.png",
                "meditation_hash": "0493bbc398918a8f836c7ca06d96813d"
            }
        ],
        "deleted_meditations": [
            21
        ],
        "meditations_hash": "493afb281ea9714c4d1c002ccbaf4136"
    }
}

Пример ответа в случае совпадения хеша:
{
    "_code": 200,
    "_msg": "OK",
    "_need_payment": false,
    "_data": "{}"
}

/all

Описание: предоставляет полную информацию про все доступные медитации (фактически является сочетанием /list + /get)
Полный путь к методу: https://www.s1eep.app/api/meditations/all
Тип запроса: POST
Требования безопасности: API-ключ
Дополнительные ожидаемые параметры:
  • hash — сохранённый клиентом хеш с прошлого раза, в случае совпадения с актуальным (поле meditations_hash) будет пустой ответ, необязательно
Дополнительные возвращаемые параметры (в случае отсутствия или несовпадения переданного hash'а):
  • meditations — массив данных о медитациях, каждый элемент является словарём со следующими полями
    • id — идентификатор медитации, который нужно использовать при запросе о данных конкретной медитации
    • name — имя медитации для отображения в списке
    • tags — массив идентификаторов тегов медитации
    • paid — флаг true/false, индикатор платного контента
    • sort — порядковый номер контента в списке
    • reader — имя озвучивающего медитацию
    • image_meditation_url — полный URL для картинки, которая представляет медитацию
    • image_reader_url — полный URL для фотографии озвучивающего медитацию
    • meditation_hash — хэш конкретной медитации, чтобы при совпадении с ранее полученным ответом (если он был) не пересохранять контент
    • ambient_sound — словарь о звуке окружающей среды, состоящий из следующих ключей:
      • id — идентификатор звука
      • sound_url — полный URL к файлу со звуком
      • sound_secs — длина звука в секундах
    • reading_sound — словарь о дорожке с чтением, состоящий из следующих ключей:
      • id — идентификатор звука
      • sound_url — полный URL к файлу со звуком
      • sound_secs — длина звука в секундах
  • deleted_meditations — массив идентификаторов удалённых медитаций для синхронизации кеша
  • meditations_hash — хэш массива meditations, чтобы при совпадении с ранее полученным ответом (если он был) не перерисовывать экран
Пример ответа в случае несовпадения хеша:
{
    "_code": 200,
    "_msg": "OK",
    "_need_payment": false,
    "_data": {
        "meditations": [
            {
                "id": 6,
                "name": "Bedtime",
                "paid": false,
                "sort": 0,
                "tags": [
                    9,
                    10
                ],
                "reader": "Loula Taylor",
                "length_secs": 600,
                "image_meditation_url": "http://test.s1eep.app/stories/2019/11/1574760305Card_12@jpg.jpg",
                "image_reader_url": "http://test.s1eep.app/readers/2019/11/1573830430reader.png",
                "meditation_hash": "c265704aba377ebcb5ca291202a61755",
                "ambient_sound": null,
                "reading_sound": {
                    "id": 70,
                    "sound_url": "http://test.s1eep.app/readings/2019/11/1573827121429  Bedtime.mp3",
                    "sound_secs": 607
                }
            },
            {
                "id": 10,
                "name": "Reconnect with your Spiritual Self",
                "paid": true,
                "sort": 1,
                "tags": [
                    11,
                    9,
                    12
                ],
                "reader": "Emma Devonshire",
                "length_secs": 1260,
                "image_meditation_url": "http://test.s1eep.app/stories/2019/11/1574921684Card_14@jpg.jpg",
                "image_reader_url": "http://test.s1eep.app/readers/2019/11/1573830461reader3.png",
                "meditation_hash": "db2ac32dd9e3710c25f1fd853547768d",
                "ambient_sound": null,
                "reading_sound": {
                    "id": 95,
                    "sound_url": "http://test.s1eep.app/readings/2019/11/1574899951480 Spiritual.mp3",
                    "sound_secs": 1235
                }
            },
            {
                "id": 11,
                "name": "Soothing Train Ride",
                "paid": true,
                "sort": 2,
                "tags": [
                    10,
                    9,
                    11,
                    14
                ],
                "reader": "Ben Whittingham",
                "length_secs": 1440,
                "image_meditation_url": "http://test.s1eep.app/stories/2019/11/1574921636Card_15@jpg.jpg",
                "image_reader_url": "http://test.s1eep.app/readers/2019/11/1573830466reader4.png",
                "meditation_hash": "2069c8c1720caefe19d1e85c800cf5b4",
                "ambient_sound": null,
                "reading_sound": {
                    "id": 96,
                    "sound_url": "http://test.s1eep.app/readings/2019/11/1574900017030 Deep Sleep - Soothing Train Ride - 25 Min.mp3",
                    "sound_secs": 1458
                }
            },
            {
                "id": 12,
                "name": "Astral Projection Practice",
                "paid": true,
                "sort": 3,
                "tags": [
                    9,
                    11
                ],
                "reader": "Loula Taylor",
                "length_secs": 2400,
                "image_meditation_url": "http://test.s1eep.app/stories/2019/11/1574921608Card_16@jpg.jpg",
                "image_reader_url": "http://test.s1eep.app/readers/2019/11/1573830430reader.png",
                "meditation_hash": "e1319e3540290a07d090594f98253255",
                "ambient_sound": null,
                "reading_sound": {
                    "id": 97,
                    "sound_url": "http://test.s1eep.app/readings/2019/11/1574900065192 Astral Projection Practice - 40 Min.mp3",
                    "sound_secs": 2403
                }
            },
            {
                "id": 13,
                "name": "Sleepy River Visualization",
                "paid": true,
                "sort": 4,
                "tags": [
                    13,
                    9,
                    14
                ],
                "reader": "Emma Devonshire",
                "length_secs": 1140,
                "image_meditation_url": "http://test.s1eep.app/stories/2019/11/1574921590Card_17@jpg.jpg",
                "image_reader_url": "http://test.s1eep.app/readers/2019/11/1573830461reader3.png",
                "meditation_hash": "e23dab2bab23e5ccdedb5e1612080f5d",
                "ambient_sound": null,
                "reading_sound": {
                    "id": 98,
                    "sound_url": "http://test.s1eep.app/readings/2019/11/1574900138203 Sleepy River Visualization - 20 Min.mp3",
                    "sound_secs": 1167
                }
            },
            {
                "id": 14,
                "name": "Lucid Dreaming Experience",
                "paid": true,
                "sort": 5,
                "tags": [
                    9,
                    10,
                    11,
                    14
                ],
                "reader": "Ruth Wayne",
                "length_secs": 840,
                "image_meditation_url": "http://test.s1eep.app/stories/2019/11/1574921574Card_18@jpg.jpg",
                "image_reader_url": "http://test.s1eep.app/readers/2019/11/1573830442reader2.png",
                "meditation_hash": "c83a4d2fa29904afa176ca4a969cf6e7",
                "ambient_sound": null,
                "reading_sound": {
                    "id": 99,
                    "sound_url": "http://test.s1eep.app/readings/2019/11/1574900183314 Lucid Dreaming Experience - 13 Min.mp3",
                    "sound_secs": 831
                }
            },
            {
                "id": 15,
                "name": "Get to Sleep in Five Minutes",
                "paid": true,
                "sort": 6,
                "tags": [
                    9,
                    10,
                    11,
                    14
                ],
                "reader": "Loula Taylor",
                "length_secs": 360,
                "image_meditation_url": "http://test.s1eep.app/stories/2019/11/1574921544Card_19@jpg.jpg",
                "image_reader_url": "http://test.s1eep.app/readers/2019/11/1573830430reader.png",
                "meditation_hash": "9a15ab0d42da391d9af3521162a662df",
                "ambient_sound": null,
                "reading_sound": {
                    "id": 100,
                    "sound_url": "http://test.s1eep.app/readings/2019/11/1574900211312 Get to Sleep in Five Minutes - 5 Min.mp3",
                    "sound_secs": 330
                }
            },
            {
                "id": 16,
                "name": "Sleepy Ocean Visualization",
                "paid": true,
                "sort": 7,
                "tags": [
                    13,
                    9,
                    14
                ],
                "reader": "Loula Taylor",
                "length_secs": 1320,
                "image_meditation_url": "http://test.s1eep.app/stories/2019/11/1574921775Card_20@jpg.jpg",
                "image_reader_url": "http://test.s1eep.app/readers/2019/11/1573830430reader.png",
                "meditation_hash": "e0ab045c97d9ce23dae547bea85cd332",
                "ambient_sound": null,
                "reading_sound": {
                    "id": 101,
                    "sound_url": "http://test.s1eep.app/readings/2019/11/1574900239226 Sleepy Ocean Visualization -20 Min.mp3",
                    "sound_secs": 1343
                }
            },
            {
                "id": 8,
                "name": "Unfazed by the Storm of Anxiety",
                "paid": true,
                "sort": 8,
                "tags": [
                    9,
                    11,
                    14
                ],
                "reader": "Emma Devonshire",
                "length_secs": 1200,
                "image_meditation_url": "http://test.s1eep.app/stories/2019/11/1574760296Card_11@jpg.jpg",
                "image_reader_url": "http://test.s1eep.app/readers/2019/11/1573830461reader3.png",
                "meditation_hash": "2b5171c209b787e70a7e7c33bdb176e5",
                "ambient_sound": null,
                "reading_sound": {
                    "id": 72,
                    "sound_url": "http://test.s1eep.app/readings/2019/11/1573827335315 Unfazed by the Storm of Anxiety - 20 Min.mp3",
                    "sound_secs": 1201
                }
            },
            {
                "id": 7,
                "name": "Deep Sleep",
                "paid": true,
                "sort": 9,
                "tags": [
                    9,
                    10,
                    13
                ],
                "reader": "Ruth Wayne",
                "length_secs": 1320,
                "image_meditation_url": "http://test.s1eep.app/stories/2019/11/1574760314Card_13@jpg.jpg",
                "image_reader_url": "http://test.s1eep.app/readers/2019/11/1573830442reader2.png",
                "meditation_hash": "9e78b1d7d2768a2b6614868887109bb0",
                "ambient_sound": null,
                "reading_sound": {
                    "id": 71,
                    "sound_url": "http://test.s1eep.app/readings/2019/11/1573827226366 Deep Sleep - 20 Min.mp3",
                    "sound_secs": 1340
                }
            }
        ],
        "deleted_meditations": [],
        "meditations_hash": "4086995d5c28dab7e47f82111524c01c"
    }
}

Пример ответа в случае совпадения хеша:
{
    "_code": 200,
    "_msg": "OK",
    "_need_payment": false,
    "_data": "{}"
}

/tags

Описание: отправляет список тегов и их идентификаторов
Полный путь к методу: https://www.s1eep.app/api/mediations/tags
Тип запроса: POST
Требования безопасности: API-ключ
Дополнительные ожидаемые параметры:
  • hash — сохранённый клиентом хеш с прошлого раза, в случае совпадения с актуальным (поле tags_hash) будет пустой ответ, необязательно
Дополнительные возвращаемые параметры (в случае отсутствия или несовпадения переданного hash'а):
  • tags — массив данных о тегах, каждый элемент является словарём со следующими полями
    • id — идентификатор тегов
    • name — описание тега
    • sort — порядковый номер контента в списке
    • meditations_count — количество медитаций под этим тегом
  • tags_hash — хэш массива tags, чтобы при совпадении с ранее полученным ответом (если он был) не пересохранять данные
Пример ответа в случае не совпадения хеша:
{
    "_code": 200,
    "_msg": "OK",
    "_need_payment": false,
    "_data": {
        "tags": [
            {
                "id": 9,
                "name": "All",
                "sort": 0,
                "meditations_count": 10
            },
            {
                "id": 11,
                "name": "Spiritual",
                "sort": 1,
                "meditations_count": 6
            },
            {
                "id": 10,
                "name": "Sleep Basics",
                "sort": 2,
                "meditations_count": 5
            },
            {
                "id": 12,
                "name": "Self-Care",
                "sort": 3,
                "meditations_count": 1
            },
            {
                "id": 13,
                "name": "Deep Sleep",
                "sort": 4,
                "meditations_count": 3
            },
            {
                "id": 14,
                "name": "Anxiety",
                "sort": 5,
                "meditations_count": 6
            }
        ],
        "tags_hash": "3ec8ca3479bb06a3c5a47f235ee2b042"
    }
}

Пример ответа в случае совпадения хеша:
{
    "_code": 200,
    "_msg": "OK",
    "_need_payment": false,
    "_data": "{}"
}


/get

Описание: предоставляет информацию о конкретной медитации
Полный путь к методу: https://www.s1eep.app/api/meditations/get
Тип запроса: POST
Требования безопасности: API-ключ + пользовательский токен (опционально)
Дополнительные ожидаемые параметры:
  • _user_token — пользовательский токен при наличии, чтобы получить доступ к платному контенту, необязательно
  • meditation_id — идентификатор медитации
  • hash — сохранённый клиентом хеш с прошлого раза, в случае совпадения с актуальным (поле meditation_hash в ответе) будет пустой ответ, необязательно
Дополнительные возвращаемые параметры (в случае отсутствия или несовпадения переданного hash'а):
  • meditation — словарь данных о запрошенной медитации
    • id — идентификатор медитации (совпадает с запрошенным meditation_id)
    • name — имя медитации
    • paid — флаг true/false, индикатор платного контента
    • sort — порядковый номер контента в списке
    • tags — массив идентификаторов тегов медитации
    • reader — имя озвучивающего медитацию
    • image_meditation_url — полный URL для картинки, которая представляет медитацию
    • image_reader_url — полный URL для фотографии озвучивающего медитацию
    • ambient_sound — словарь о звуке окружающей среды, состоящий из следующих ключей:
      • id — идентификатор звука
      • sound_url — полный URL к файлу со звуком
      • sound_secs — длина звука в секундах
    • reading_sound — словарь о дорожке с чтением, состоящий из следующих ключей:
      • id — идентификатор звука
      • sound_url — полный URL к файлу со звуком
      • sound_secs — длина звука в секундах
  • meditation_hash — хэш данных о медитации, чтобы при совпадении с ранее полученным ответом (если он был) не перезагружать данные

Пример ответа в случае несовпадения хеша:
{
    "_code": 200,
    "_msg": "OK",
    "_need_payment": false,
    "_data": {
        "meditation": {
            "id": 6,
            "name": "Bedtime",
            "paid": false,
            "sort": 0,
            "tags": [
                9,
                10
            ],
            "reader": "Loula Taylor",
            "image_meditation_url": "http://test.s1eep.app/stories/2019/11/1574760305Card_12@jpg.jpg",
            "image_reader_url": "http://test.s1eep.app/readers/2019/11/1573830430reader.png",
            "ambient_sound": null,
            "reading_sound": {
                "id": 70,
                "sound_url": "http://test.s1eep.app/readings/2019/11/1573827121429  Bedtime.mp3",
                "sound_secs": 607
            }
        },
        "meditation_hash": "c265704aba377ebcb5ca291202a61755"
    }
}

Пример ответа в случае совпадения хеша:
{
    "_code": 200,
    "_msg": "OK",
    "_need_payment": false,
    "_data": "{}"
}

/check

Описание: быстрая проверка доступности контента для пользователя (проверка наличия доступа или подписки к платному контенту)
Полный путь к методу: https://www.s1eep.app/api/meditations/check
Тип запроса: POST
Требования безопасности: API-ключ + пользовательский токен (опционально)
Дополнительные ожидаемые параметры:
  • _user_token — пользовательский токен при наличии, чтобы проверить доступ к платному контенту для конкретного пользователя приложения, необязательно
  • meditation_id — идентификатор медитации
Дополнительные возвращаемые параметры:
  • нет

Пример ответа в случае возможности доступа:
{
    "_code": 200,
    "_msg": "OK",
    "_need_payment": false,
    "_data": "{}"
}

Пример ответа в случае невозможности доступа:
{
    "_code": 403,
    "_msg": "Active subscription required",
    "_need_payment": true,
    "_data": "{}"
}