---
id: YandexDisk
sidebar_class_name: YandexDisk
---
# Yandex Disk
This section is dedicated to the library for working with Yandex Disk API. On this page, all the steps necessary to start working are described
## Getting started
To start working, you need to obtain an access token for the disk:
1. Go to [app creation page](https://oauth.yandex.ru/client/new/)
![BF](../../static/img/Docs/YandexDisk/1.png)
2. Enter the service name, select *Web services* as the platform. You can specify any *Redirect URI* or select the Insert debugging URL option - it will not be needed for working with the library.
![BF](../../static/img/Docs/YandexDisk/3.png)
3. In the **Data Access** field, add permissions as shown in the screenshot below, then click **Create Application**
![BF](../../static/img/Docs/YandexDisk/2.png)
4. Save **ClientID** and **ClientSecret** from the application page
![BF](../../static/img/Docs/YandexDisk/4.png)
5. Call the function *OPI_YandexID.GetConfirmationCode()*, passing ClientID as a parameter. It will return a response from the Yandex server, which will contain the fields:
- **user_code** - you will need to enter in the browser
- **device_code** - you will need to pass to another function
- **verification_url** - the URL that needs to be opened in the browser
```json title="The result of the function GetConfirmationCode(), if convert it to JSON"
{
"verification_url": "https://ya.ru/device",
"user_code": "gjehyruw",
"interval": 5,
"expires_in": 300,
"device_code": "12207cafec1b40ad8d0052af3faf0d12"
}
```
6. Open the URL from **verification_url** in the browser. Most likely, it will be https://ya.ru/device. In the field that appears, enter the **user_code** from step 5
![BF](../../static/img/Docs/YandexDisk/5.png)
7. After entering the code in step 6, call the function *OPI_YandexID.ConvertCodeToToken()*, passing **ClientID** and **ClientSecret** from step 4, as well as **device_code** from step 5. Save the obtained **access_token** and **refresh_token**
```json title="The result of the function ConvertCodeToToken(), if convert it to JSON"
{
"token_type": "bearer",
"refresh_token": "1:Tj6nD2vgE2L8jwSm:YgWjQXPv6_y3e07GW70ig2AOyEXoRVsKKpApGHq2EOg7pfx0MKrXiCrfLBFtzgQawdawdwadad3Sasa9z2H0vSeZKNmZmA",
"expires_in": 31535956,
"access_token": "y0_AgAAAABWxxdkAAs0QgAAAAD59cawdawdwadadVKIiwGK__crw"
}
```
**access_token** is used in all other functions of the library, and with the help of **refresh_token**, it can be refreshed when its lifespan is nearing the end (using the function *RefreshToken()*)