Как войти в YouTube Используя PHP?

Я хочу использовать API YouTube для получения пользовательских видео новой подписки с этим вызовом API:

http://gdata.youtube.com/feeds/api/users/default/newsubscriptionvideos

Не входя в систему я получаю этот ответ:

User authentication required.
Error 401

Как я могу войти в YouTube от php?

7
задан Kezzer 24 August 2010 в 15:55
поделиться

2 ответа

Вы можете использовать OAuth, AuthSub или ClientLogin. ClientLogin является самым простым (он просто использует имя пользователя/пароль), но его не рекомендуется использовать, поскольку он требует, чтобы пользователи передавали вам свои учетные данные. AuthSub и OAuth этого не делают. Библиотека PHP от Google в настоящее время, похоже, поддерживает только AuthSub (пример PHP) и ClientLogin.

5
ответ дан 7 December 2019 в 12:15
поделиться

Вот простая функция для авторизации. Это возвращает сообщение об ошибке или 0 в случае успеха. Я использовал собственную библиотеку curl, но не совсем понятно, что $this->curl->SetHeader можно заменить на curl_setopt($ch, CURLOPT_HTTPHEADER, $header)

public function login(Model_ServiceAccount $account){
        $this->curl->SetHeader('Content-type', 'application/x-www-form-urlencoded');
        $this->curl->post('https://www.google.com/youtube/accounts/ClientLogin',
                          'Email=' . $account->mail->login . '&Passwd=' . $account->mail->password . '&service=youtube&source=whatever');
        if (preg_match('~Error=(.+)~', $this->curl->getResponse(), $match))
            return $match[1];
        if (!preg_match('~Auth=(.*)~', $this->curl->getResponse(), $match)) Toolkit::error('Unhandled error in Authentication request');
        $authToken = $match[1];
        $this->curl->SetHeader('Authorization: GoogleLogin auth', $this->developerKey);
        $this->curl->SetHeader('X-GData-Key: key=', $authToken);
        $this->curl->SetHeader('Content-Type', 'application/atom+xml');
        return 0;
    }
0
ответ дан 7 December 2019 в 12:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: