init
This commit is contained in:
commit
6296637a53
23
README.md
Normal file
23
README.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
# Документация для продуктов Biblio
|
||||
|
||||
В настоящий момент для партнеров мы предлагаем два front-end продукта:
|
||||
|
||||
1. **Ядро плеера аудиокниг** (biblio-player-core)
|
||||
Модуль предназначен для разработки плеера с кастомным интерфейсов.
|
||||
[Документация и примеры](biblio-player-core.md)
|
||||
|
||||
|
||||
2. **Плеер аудиокниг** (biblio-player-ui)
|
||||
Модуль для встраивания плеера с готовым UI на сайт через специальный тег или ~~iframe~~
|
||||
[Документация и примеры](biblio-player-ui.md)
|
||||
|
||||
## Имеющийся модули для CMS
|
||||
- Wordpress
|
||||
- DLE
|
||||
- Joomla
|
||||
- Drupal
|
||||
|
||||
## Дополнительная информация
|
||||
|
||||
1. [Как сгенерировать user_key?](user-key.md)
|
||||
2. [Сервис для поиска ID книги](https://biblio-book-checker.vercel.app)
|
89
biblio-player-core.md
Normal file
89
biblio-player-core.md
Normal file
|
@ -0,0 +1,89 @@
|
|||
# Установка виджета проигрывания и продажи контента реферальной системы Biblio
|
||||
|
||||
### Инициализация JS виджета на странице
|
||||
|
||||
Адрес расположения виджета: https://pub-cdn.bibliovk.ru/referals/wgt.js
|
||||
Принимает в качестве параметров массив вида:
|
||||
- **$book_id** - идентификатор книги
|
||||
- **$referal_key** - авторизационный ключ реферала, выдающийся в личном кабинете
|
||||
- **$user_key** - авторизационный ключ пользователя реферала, формирующийся в back-end части реферала по алгоритму. При неавторизованном пользователе указываем null. [Как сгенерировать user_key?](user-key.md)
|
||||
|
||||
### Инициализация JS виджета на странице UI
|
||||
```
|
||||
let biblio = new Biblio({
|
||||
bookId: 1573,
|
||||
referalKey: "Ваш ключ реферала",
|
||||
userKey: "Ключ пользователя"
|
||||
})
|
||||
|
||||
biblio.on('init', function (player) {
|
||||
console.log('init_test')
|
||||
console.log(player)
|
||||
})
|
||||
```
|
||||
|
||||
## Методы
|
||||
`.on(event, callback)` - подписаться на эвенты
|
||||
bbl-pause
|
||||
bbl-play
|
||||
bbl-ended
|
||||
bbl-stop
|
||||
bbl-playback-change
|
||||
bbl-volume
|
||||
bbl-progress
|
||||
bbl-widget-init
|
||||
|
||||
`.isWidgetInit()` - булево. Позволяет проверить состояние инициализации виджета.
|
||||
|
||||
`.pause()` - пауза
|
||||
|
||||
`.play(tracks_id)` - проигрывание. для некупленной книги - демо. для купленной, если не задан id трэка - с последней
|
||||
позиции прослушивания, если задан - с начала трэка
|
||||
|
||||
`.stop()` - остановка проигрывания
|
||||
|
||||
`.seek(seconds)` - перескочить на позицию
|
||||
|
||||
`.isSleepTimerActive()` - возвращает boolean, включен или нет таймер сна
|
||||
|
||||
`.stopSleepTimer()` - остановка таймера сна
|
||||
|
||||
`.isForSubscribers()` - возвращает boolean, доступна ли книга по подписке
|
||||
|
||||
`.getAmount()` - получить стоимость покупки в рублях
|
||||
|
||||
`.startPurchaseBook()` - инициирует процесс покупки. переадресовывает пользователя на форму покупки, после возвращает на
|
||||
ту страницу с которой уходил покупать
|
||||
|
||||
`.destroy()` - дестоит весь объект
|
||||
|
||||
`.startPurchaseSubscribtion()` - инициирует процесс подписки. пока НЕ используется, т.к. подписки не в проде
|
||||
|
||||
`.getBookPurchaseIsNeed()` - возвращает boolean. констатирует надо ли юзеру купить книгу (или подписку, в будущем) чтобы
|
||||
слушать всю
|
||||
|
||||
`.setSleepTimer(hours, mins)` - стартует таймер сна
|
||||
|
||||
`.getPlayerState()` - возвращает статут плеера (idle,none,playing,paused)
|
||||
|
||||
`.getPlaybackRate()` - возвращает текущую скорость воспроизведения
|
||||
|
||||
`.setPlaybackRate()` - меняет скорость воспроизведения
|
||||
|
||||
`.ff()` - быстрая перемотна на 15 сек вперед
|
||||
|
||||
`.rw()` - быстрая перемотна на 15 сек назад
|
||||
|
||||
`.getPosition()` - получение текущей позиции в секундах
|
||||
|
||||
`.getCurrentTrack()` - получение текущего track_id
|
||||
|
||||
`.getDuration()` - получение продолжительности трека
|
||||
|
||||
`.getBookMeta()` - получение меты книги
|
||||
|
||||
`.getTracksMeta()` - получение меты треков
|
||||
|
||||
`.getVolume()` - получение текущего уровня звука
|
||||
|
||||
`.setVolume(vol)` - установка уровня звука
|
30
biblio-player-ui.md
Normal file
30
biblio-player-ui.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
# Ядро плеера аудиокниг (biblio-player-core)
|
||||
|
||||
Модуль предназначен для разработки плеера с кастомным интерфейсов.
|
||||
|
||||
## Подключение скриптов
|
||||
|
||||
**Подключаем VUE 2**
|
||||
```
|
||||
<script src='https://cdn.jsdelivr.net/npm/vue@2.6.14'></script>
|
||||
```
|
||||
|
||||
**Подключаем виджет**
|
||||
```
|
||||
<script src='https://167503.selcdn.ru/test/biblio-widget-ui.js'></script>
|
||||
<link rel='stylesheet' href='https://167503.selcdn.ru/test/biblio-widget-ui.css'/>
|
||||
```
|
||||
|
||||
**Иницализируем виджет**
|
||||
```
|
||||
<div id="bblpl">
|
||||
<biblio-player referal-key="$referal_key" user-key="$user_key" book-id="$book_id"/>
|
||||
<script>new Vue({ components: { biblioPlayer } }).$mount("#bblpl")</script>
|
||||
</div>';
|
||||
```
|
||||
|
||||
Необходимо заменить значения переменных:
|
||||
- **$book_id** - идентификатор книги
|
||||
- **$referal_key** - авторизационный ключ реферала, выдающийся в личном кабинете
|
||||
- **$user_key** - авторизационный ключ пользователя реферала, формирующийся в back-end части реферала по алгоритму. При неавторизованном пользователе указываем null. [Как сгенерировать user_key?](user-key.md)
|
||||
|
57
user-key.md
Normal file
57
user-key.md
Normal file
|
@ -0,0 +1,57 @@
|
|||
# Как сгенерировать user_key?
|
||||
|
||||
## Формирование user_key (примеры на php)
|
||||
|
||||
Ключ пользователя формируется из массива параметров, которые позволяют однозначно идентифицировать пользователя внутри системы Biblio.
|
||||
|
||||
**Массив имеет следующий вид:**
|
||||
```
|
||||
$ident_array = [
|
||||
'type' => 'email',
|
||||
'ident' => 'username@mail.ru'
|
||||
];
|
||||
```
|
||||
|
||||
**В качестве type в ident массиве могут выступать следующие значения:**
|
||||
- **email** – электронная почта (предпочтительно)
|
||||
- **phone** – номер телефона (в международном формате, без + в начале номера)
|
||||
- **google_id** – идентификатор пользователя у google
|
||||
- **vk_id** – идентификатор пользователя в Вконтакте
|
||||
- **apple_id** – идентификатор пользователя в apple id (не email apple id, а именно идентификатор)
|
||||
- **tg_id** – идентификатор пользователя в Telegram
|
||||
- **fb_id** – идентификатор пользователя в Facebook
|
||||
|
||||
**Необходимо указать свой ключ реферала:**
|
||||
```
|
||||
$referal_key = 'YOUR_REFERAL_KEY';
|
||||
```
|
||||
|
||||
Далее массив преобразовывается в base64 строку, которая используется в качестве user_key в виджете.
|
||||
|
||||
**Алгоритм преобразования следующий:**
|
||||
```
|
||||
$source_string = json_encode($ident_array);
|
||||
$ivlen = openssl_cipher_iv_length($cipher = 'AES-256-CBC');
|
||||
$iv = mb_substr($referal_key, 0, $ivlen);
|
||||
$key = mb_substr($referal_key, 10, 35);
|
||||
$raw = openssl_encrypt($source_string, $cipher, $key, OPENSSL_RAW_DATA, $iv);
|
||||
$hmac = hash_hmac('sha25', $raw, $key, true);
|
||||
$user_key = base64_encode($hmac.$raw);
|
||||
```
|
||||
|
||||
### Контрольные значения для проверки алгоритма
|
||||
|
||||
Вводные данные:
|
||||
```
|
||||
$ident_array = [
|
||||
'type' => 'email',
|
||||
'ident' => 'username@mail.ru'
|
||||
];
|
||||
$referal_key = 'YOUR_REFERAL_KEY';
|
||||
```
|
||||
|
||||
Итоговый ключ:
|
||||
```
|
||||
o91Gup4bGZ11hjsBbIvimOiv5Lg+5kcgfsSoQ9YkPcPB5f/mkYJIo7Tp0TI6piG/lO3aQSeszOzgG05dl8PH3Cyc2J63vJ6slFL0LFV6jhs=
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user