Можно подробнее причину удаления? Хранили только для себя или у вас был открытый канал с сериалами?
То есть, как я понял, если взять ту же JQuery, то тут API библиотеки будут все те методы, что она предоставляет? Типа $(selector).on(), $(selector).hide() ?
И вообще, как думаете, такое тестовое задание еще до этапа собеседования нормальное?
Если процесс можно автоматизировать без дополнительных свистелок (просто парой десятков дополнительных строк кода) - лучше делать без них
Во вторых, подход, когда после каждого теста перезаписывается база плох тем, что очень сильно замедляется выполнение тестов.
With the help of a PHPUnit listener class it will begin a transaction before every testcase and roll it back again after the test finished for all configured DBAL connections. This results in a performance boost as there is no need to rebuild the schema, import a backup SQL dump or re-insert fixtures before every testcase. As long as you avoid issuing DDL queries that might result in implicit transaction commits (Like ALTER TABLE, DROP TABLE etc; see https://wiki.postgresql.org/wiki/Transactional_DDL...) your tests will be isolated and all see the same database state.
Лучше обновлять базу один раз, при запуске тестов...
$app_secret = '';
$short_lived_access_token = '';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://graph.instagram.com/access_token?grant_type=ig_exchange_token&client_secret={$app_secret}&access_token={$short_lived_access_token}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
$long_lived_access_token = $data['access_token'];
$long_lived_access_token = '';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://graph.instagram.com/refresh_access_token?grant_type=ig_refresh_token&access_token={$long_lived_access_token}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
$refreshed_long_lived_access_token = $data['access_token'];
GET https://graph.instagram.com/access_token
?grant_type=ig_exchange_token
&client_secret={instagram-app-secret}
&access_token={short-lived-access-token}
curl -X GET \
'https://graph.instagram.com/access_token?grant_type=ig_exchange_token&&client_secret=eb87G...&access_token=IGQVJ...'
{
"access_token": "lZAfb2dhVW...",
"token_type": "bearer",
"expires_in": 5183944
}
GET https://graph.instagram.com/refresh_access_token
?grant_type=ig_refresh_token
&access_token={long-lived-access-token}
curl -X GET \
'https://graph.instagram.com/refresh_access_token?grant_type=ig_refresh_token&&access_token=F4RVB...'
{
"access_token": "c3oxd...",
"token_type": "bearer",
"expires_in": 5183944
}
Short-Lived Access Tokens
Short-lived access tokens are valid for 1 hour, but can be exchanged for long-lived tokens. To get a short-lived access token, implement the Authorization Window into your app. After the app user authenticates their identity through the window, we will redirect the user back to your app and include an Authorization Code, which you can then exchange for a short-lived access token.
Long-Lived Access Tokens
Long-lived tokens are valid for 60 days and can be refreshed before they expire. Short-lived access tokens can be exchanged for long-lived access tokens through the GET /access_token endpoint. Once you have a long-lived access token you can refresh it before it expires through the GET /refresh_access_token endpoint.
caption - подпись к изображению или видео. Для медиафайлов в альбомах не возвращается.
id - ID медиафайла.
media_type - тип медиафайла. Возможные варианты: IMAGE, VIDEO, CAROUSEL_ALBUM.
media_url - URL медиафайла.
permalink - постоянный URL медиафайла.
thumbnail_url - URL миниатюры медиафайла. Доступно только для типа VIDEO.
timestamp - дата публикации медиафайла в формате ISO 8601.
username - имя пользователя, опубликовавшего медиафайл.
Вот боты, где есть такой функционал, но на данный момент они уже не работают:
https://t.me/filesbot
https://share_file_bot