Skip to content

Latest commit

 

History

History
88 lines (65 loc) · 7.02 KB

README.ru.md

File metadata and controls

88 lines (65 loc) · 7.02 KB

Обертка над Shikimori API

Библиотека TypeScript, предоставляющая простую и удобную оболочку для доступа к Shikimori API. Библиотека поддерживает все эндпоинты и типы Shikimori API, а также предоставляет функциональность по OAuth2-авторизации с использованием access-токена.

Build Status npm version License donate boosty

Особенности

  • Поддержка всех эндпоинтов Shikimori API: Данная библиотека поддерживает все эндпоинты (v1 и v2) Shikimori API, включая доступ к базе с аниме, мангой, персонажами, пользователями и другими ресурсами.
  • Поддержка авторизации: Библиотека обеспечивает поддержку авторизации с использованием access-токена.
  • Строгая типизация: Все методы библиотеки типизированы, что упрощает интеграцию с другими проектами, использующими Typescript.
  • Отсутствие зависимостей: Эта библиотека не имеет внешних зависимостей, что делает её легковесной и простой для установки.
  • Простое в использовании API: Обертка над API разработана таким образом, чтобы быть простой и удобной в использовании, с интуитивно понятными методами и параметрами, которые позволяют работать с API "из коробки".

Документация

Смотрите документацию библиотеки сгенерированную с помощью TypeDoc.

Смотрите официальную документацию для Shikimori API.

Установка

npm

$ npm i --save node-shikimori

yarn

$ yarn add node-shikimori

Использование

Чтобы использовать библиотеку, просто импортируйте её в свой проект и создайте экземпляр client. После этого вы сможете использовать различные методы, предоставляемые client для доступа к Shikimori API.

import { client } from 'node-shikimori';

const shikimori = client();

const result = await shikimori.animes.byId({
    id: 1
});

console.log(result);

Авторизация

Более подробную информацию можно посмотреть в Official Shikimori OAuth2 Guide.

  1. Зарегистрируйте ваше приложение Шикимори: После регистрации вам будут выданы client_id и client_secret которые понадобятся для использования OAuth2.

  2. Перенаправьте пользователя на эндпоинт авторизации в Шикимори: Этот эндпоинт предложит ему предоставить вашему приложению доступ к своим данным. После того, как пользователь предоставит доступ, Шикимори перенаправит его обратно в ваше приложение с кодом авторизации.

https://shikimori.me/oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&response_type=code&scope=
  1. Получите токен доступа: Вашему приложению потребуется обменять код авторизации на AccessToken. Шикимори вернет вам персональный токен доступа, который ваше приложение может использовать для доступа к ограниченным ресурсам/эндпоинтам.
import { auth } from 'node-shikimori';

const { getAccessToken } = auth({
    clientId: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
});

const accessToken = await getAccessToken('YOUR_AUTH_CODE');
  1. Используйте AccessToken для доступа к защищенным ресурсам: Теперь ваше приложение может использовать AccessToken для доступа к защищенным ресурсам пользователя. Обязательно корректно обрабатывайте любые ошибки, а также токены с истекшим сроком действия.
const shikimori = client();
shikimori.setAccessToken(YOUR_ACCESS_TOKEN);

const currentUser = await shikimori.users.whoami();
console.log(currentUser)

5.Обновление токена доступа: Токены доступа имеют ограниченный срок действия в 1 день, поэтому вашему приложению потребуется периодически обновлять их, чтобы поддерживать доступ пользователя к ресурсам. Для этого используйте функцию refreshAccessToken с refresh-токеном в качестве параметра. Шикимори вернет новый токен доступа и токен обновления, которые ваше приложение может использовать для продолжения предоставления доступа к защищенным ресурсам.

const newAccessToken = await refreshAccessToken('YOUR_REFRESH_TOKEN');

Соавторство

Вклад в библиотеку всегда приветствуется и поощряется. Для этого откройте Issue с описанием проблемы или Pull Request с необходимыми изменениями

Лицензия

Данная библиотека распространяется по лицензии MIT. Подробнее можно ознакомиться в LICENSE.