A typescript wrapper for the http://shikimori.org API. Fork of Capster/node-shikimori for my own project with some fixes and changes.
npm install fxck-node-shikimorish
$ npm i --save node-shikimori
`
#### yarn
`sh
$ yarn add node-shikimori
`
Использование
Чтобы использовать библиотеку, просто импортируйте её в свой проект и создайте экземпляр client. После этого вы сможете использовать различные методы, предоставляемые client для доступа к Shikimori API.
`typescript
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=
`
3. Получите токен доступа: Вашему приложению потребуется обменять код авторизации на AccessToken. Шикимори вернет вам персональный токен доступа, который ваше приложение может использовать для доступа к ограниченным ресурсам/эндпоинтам.
`ts
import { auth } from 'node-shikimori';
const { getAccessToken } = auth({
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET',
});
const accessToken = await getAccessToken('YOUR_AUTH_CODE');
`
4. Используйте AccessToken для доступа к защищенным ресурсам: Теперь ваше приложение может использовать AccessToken для доступа к защищенным ресурсам пользователя. Обязательно корректно обрабатывайте любые ошибки, а также токены с истекшим сроком действия.
`ts
const shikimori = client();
shikimori.setAccessToken(YOUR_ACCESS_TOKEN);
const currentUser = await shikimori.users.whoami();
console.log(currentUser)
`
5.Обновление токена доступа: Токены доступа имеют ограниченный срок действия в 1 день, поэтому вашему приложению потребуется периодически обновлять их, чтобы поддерживать доступ пользователя к ресурсам. Для этого используйте функцию refreshAccessToken с refresh-токеном в качестве параметра. Шикимори вернет новый токен доступа и токен обновления, которые ваше приложение может использовать для продолжения предоставления доступа к защищенным ресурсам.
`ts
const newAccessToken = await refreshAccessToken('YOUR_REFRESH_TOKEN');
``