1. Go to this page and download the library: Download tds-so/php-sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tds-so / php-sdk example snippets
use TdsSo\Sdk\TdsSoClient;
// Создание клиента
$client = new TdsSoClient('ваш_api_токен_64_символа');
// Или с дополнительными опциями
$client = new TdsSoClient('ваш_api_токен', [
'base_uri' => 'https://tds.so/api/v2',
'timeout' => 30,
'debug' => false,
]);
// Получить список ссылок
$response = $client->links()->getLinks(20, 'DESC');
$links = $response->getLinks();
foreach ($links as $link) {
echo $link->getLinkRedirect() . ' -> ' . $link->getRedirectTo() . PHP_EOL;
echo 'Клики: ' . $link->getTotalClicks() . PHP_EOL;
}
// Обновить редирект для последней ссылки
$client->links()->setLastLink('https://new-redirect.com');
// Обновить редирект для всех ссылок
$client->links()->setAllLinks('https://new-redirect.com');
// Обновить редирект с фильтрами
use TdsSo\Sdk\Builders\SetLinksBuilder;
$builder = (new SetLinksBuilder())
->setTemplateId(123)
->setFolder('my-folder');
$client->links()->setLinks('https://new-redirect.com', $builder);
// Продлить срок жизни ссылок
use TdsSo\Sdk\Builders\ExtendLinksBuilder;
// Продлить все ссылки на 48 часов и реактивировать неактивные
$response = $client->links()->extendAllLinks(hours: 48, reactivate: true);
// Продлить ссылки по шаблону
$response = $client->links()->extendLinksByTemplateId(123, hours: 72);
// Продлить ссылки по папке доменов
$response = $client->links()->extendLinksByFolder('active-domains', hours: 168);
// Продлить с кастомными фильтрами
$builder = (new ExtendLinksBuilder())
->setTemplateId(123)
->setFolder('my-folder')
->setHours(24)
->setReactivate(false); // Не реактивировать неактивные
$response = $client->links()->extendLinks($builder);
echo 'Продлено ссылок: ' . $response->get('extended_count');
echo 'Реактивировано: ' . $response->get('reactivated_count');
// Получить все домены
$response = $client->domains()->getDomains();
$domains = $response->getDomains();
// Получить домены по шаблону
$response = $client->domains()->getDomains(templateId: 123);
// Проверить домены
use TdsSo\Sdk\Builders\CheckDomainsBuilder;
$builder = (new CheckDomainsBuilder())
->checkVk(true)
->checkGoogle(true)
->deleteInvalid(true);
$response = $client->domains()->checkDomains(['domain1.com', 'domain2.com'], $builder);
// Проверить домены без использования кеша
$builder = (new CheckDomainsBuilder())
->setNoCache(true)
->checkVk(true);
$response = $client->domains()->checkDomains(['domain1.com', 'domain2.com'], $builder);
// Удалить домены
$client->domains()->deleteDomains(['old-domain.com'], soft: true);
// Удалить все домены
$client->domains()->deleteAllDomains(soft: false, limit: 100);
// Очистить кеш проверки доменов
$client->domains()->clearCache(['domain1.com', 'domain2.com']);
// Очистить весь кеш проверки доменов
$client->domains()->clearAllCache();
// Получить все шаблоны
$response = $client->templates()->getTemplates();
$templates = $response->getTemplates();
// Получить шаблон по имени
$response = $client->templates()->getTemplateByName('my-template');
$template = $response->getTemplate();
// Создать новый шаблон
use TdsSo\Sdk\Builders\TemplateBuilder;
$builder = (new TemplateBuilder())
->setName('New Template')
->setDescription('Created via SDK')
->setRedirectType('301')
->setRedirectDelay(3)
->setBanCheck(true)
->setRandomPhrases(true)
->setMinSymbols(5)
->setMaxSymbols(10);
$response = $client->templates()->createTemplate($builder);
echo 'Created template ID: ' . $response->getTemplateId();
use TdsSo\Sdk\Builders\CreateRedirectBuilder;
// Создать массовые редиректы
$domains = ['domain1.com', 'domain2.com'];
$links = ['https://target1.com', 'https://target2.com'];
$builder = (new CreateRedirectBuilder())
->setTemplate('last')
->setCheckVk(true);
$response = $client->create()->createRedirect($domains, $links, $builder);
echo $response->getResponse();
// Создать единичный редирект
$response = $client->create()->createSingleRedirect(
'single-domain.com',
'https://single-target.com'
);
// Создать редиректы с отдельными URL для ботов
$domains = ['domain1.com', 'domain2.com'];
$links = ['https://target1.com', 'https://target2.com'];
$botUrls = ['https://bot-target1.com', 'https://bot-target2.com'];
// Удобный метод
$response = $client->create()->createRedirectWithBots($domains, $links, $botUrls);
// Или через builder
$builder = (new CreateRedirectBuilder())
->setTemplate('last')
->setBotUrls($botUrls);
$response = $client->create()->createRedirect($domains, $links, $builder);
use TdsSo\Sdk\Exceptions\ApiException;
use TdsSo\Sdk\Exceptions\InvalidConfigurationException;
try {
$response = $client->links()->getLinks();
} catch (ApiException $e) {
// Ошибка API
echo 'API Error: ' . $e->getMessage() . PHP_EOL;
echo 'Error ID: ' . $e->getErrorId() . PHP_EOL;
// Получить полный ответ
$data = $e->getResponseData();
} catch (InvalidConfigurationException $e) {
// Ошибка конфигурации
echo 'Configuration Error: ' . $e->getMessage();
} catch (\Exception $e) {
// Другие ошибки
echo 'Error: ' . $e->getMessage();
}
use TdsSo\Sdk\Contracts\HttpClientInterface;
class MyHttpClient implements HttpClientInterface
{
public function get(string $endpoint, array $params = []): array
{
// Ваша реализация
}
// Остальные методы...
}
$client = new TdsSoClient('token', [
'http_client' => new MyHttpClient(),
]);
use TdsSo\Sdk\Client\Configuration;
use TdsSo\Sdk\TdsSoClient;
$config = new Configuration(
token: 'your_token',
baseUri: 'https://custom.api.url/v2',
timeout: 60,
debug: true
);
$client = TdsSoClient::createWithConfig($config);