Социальный аккаунт Tiktok/Instagram Получение подписчиков и пользовательских данных

Вопрос или проблема

В WordPress мне нужно создать функциональность, как указано ниже, без использования плагина:

Создать две кнопки: одну для входа через Instagram и другую для входа через TikTok.

Перенаправление на OAuth-аутентификацию: Когда пользователь нажимает кнопку, перенаправить его на соответствующий URL OAuth.

Обработка аутентификации и возврат: После аутентификации пользователи будут перенаправлены обратно на ваш сайт с токеном доступа.

Получение данных пользователя: Используйте токен доступа для получения количества подписчиков и основных данных пользователя. Сохранение данных в метаданных пользователя: Сохраните полученную информацию (подписчики, имя пользователя и т.д.) в метаданных пользователя WordPress.

.

Ответ или решение

Создание функциональности OAuth-аутентификации и интеграции с социальными сетями, такими как Instagram и TikTok, на платформе WordPress без использования плагинов, требует детального понимания работы с API данных платформ и манипуляции с системой пользовательских метаданных WordPress. В этой статье я подробно расскажу, как можно реализовать такую функциональность, начиная с общей теории и заканчивая практическими примерами.

Теория

OAuth 2.0 является протоколом, который позволяет третьим лицам получать ограниченный доступ к пользовательским данным с использованием токенов доступа. Он широко используется для интеграции с популярными социальными сетями, такими как Instagram и TikTok. Основные этапы процесса включают в себя:

  1. Запрос на аутентификацию: Пользователь переходит на страницу аутентификации, где предоставляет согласие на доступ к своим данным.
  2. Получение токена доступа: После успешной аутентификации и предоставления прав доступа, система возвращает токен, который используется для доступа к данным пользователя.
  3. Доступ к API: С использованием токена можно выполнять запросы к API социальных сетей для получения данных, таких как количество подписчиков и основные детали профиля.
  4. Сохранение данных: Эти данные затем сохраняются в метаданные пользователя в WordPress.

Пример

Теперь рассмотрим процесс создания функциональности на примере. Предположим, что у вас уже есть приложение для Instagram и TikTok, зарегистрированное в соответствующих платформах, и у вас есть необходимые идентификаторы и секреты.

1. Создание кнопок на сайте

В WordPress вы можете создать произвольные кнопки, добавив следующий код в шаблон темы или файл PHP:

<a href="https://api.instagram.com/oauth/authorize?client_id=ВАШ_CLIENT_ID&redirect_uri=ВАШ_REDIRECT_URI&scope=user_profile&response_type=code">
    Войти через Instagram
</a>
<a href="https://www.tiktok.com/auth/login?client_key=ВАШ_CLIENT_ID&redirect_uri=ВАШ_REDIRECT_URI&scope=user.info.basic&response_type=code">
    Войти через TikTok
</a>

2. Обработка аутентификации и получение токена

Когда пользователь нажимает на кнопку, он перенаправляется на страницу аутентификации. После успешной аутентификации его перенаправляют обратно на ваш сайт с кодом авторизации. Этот код необходимо обменять на токен доступа. В WordPress это можно сделать через создание пользовательской функции, которая будет перехватывать возвратный код и совершать запрос к API для получения токена.

// Обработчик для Instagram
function handle_instagram_oauth() {
    if (isset($_GET['code'])) {
        $code = $_GET['code'];
        $token_url = 'https://api.instagram.com/oauth/access_token';

        $response = wp_remote_post($token_url, [
            'body' => [
                'client_id' => 'ВАШ_CLIENT_ID',
                'client_secret' => 'ВАШ_CLIENT_SECRET',
                'redirect_uri' => 'ВАШ_REDIRECT_URI',
                'code' => $code,
                'grant_type' => 'authorization_code'
            ]
        ]);

        $body = json_decode($response['body'], true);
        $access_token = $body['access_token'];

        if ($access_token) {
            fetch_and_store_user_data($access_token, 'instagram');
        }
    }
}

// Обработчик для TikTok будет аналогичным

3. Получение пользовательских данных

С имеющимся токеном мы можем запрашивать нужные данные. В случае Instagram можно воспользоваться следующим примером:

function fetch_and_store_user_data($access_token, $platform) {
    if ($platform === 'instagram') {
        $response = wp_remote_get('https://graph.instagram.com/me?fields=id,username,followers_count&access_token=' . $access_token);
        $user_data = json_decode($response['body'], true);

        if ($user_data) {
            $user_id = get_current_user_id();
            update_user_meta($user_id, 'instagram_followers', $user_data['followers_count']);
            update_user_meta($user_id, 'instagram_username', $user_data['username']);
        }
    }
    // Аналогично делаем для TikTok
}

Применение

Теперь, когда вы понимаете общую теорию и видите пример реализации, можно рассмотреть несколько дополнительных шагов:

  • Обработка ошибок: важная часть любого взаимодействия с API — это обработка ошибок и исключительных ситуаций, таких как истекшие токены или отказ в доступе.
  • Защита данных: всегда важно учитывать аспекты безопасности. Например, хранить секретные ключи и токены безопасно и избегать их раскрытия в публичных репозиториях.
  • Юзабилити: обеспечить удобство использования для пользователей, например, с помощью трактуемых сообщений или обратной связи при ошибках.

Таким образом, реализация аутентификации и интеграции социальных сетей на WordPress без плагинов требует тщательного подхода и проверки каждого шага на предмет корректной работы и безопасности. Однако, следуя изложенным принципам и применяя пример к вашему проекту, вы сможете успешно реализовать нужную функциональность.

Оцените материал
Добавить комментарий

Капча загружается...