2014-10-28 4 views
0

Я работал над небольшим сценарием, чтобы захватить данные канала YouTube, а мой Google OAuth 2.0 не работает.Почему мой Google OAuth 2.0 не работает?

$validate = "https://accounts.google.com/o/oauth2/auth?client_id=242340718758-65veqhhdjfl21qc2klkfhbcb19rre8li.apps.googleusercontent.com&redirect_uri=http://conor1998.web44.net/php/oauth.php&scope=https://www.googleapis.com/auth/yt-analytics.readonly&response_type=code&access_type=offline"; 

echo "<a href='$validate'>Login with Google for advanced analytics</a>"; 

if(isset($_GET['code'])) { 
    // try to get an access token 
    $code = $_GET['code']; 
    $url = 'https://accounts.google.com/o/oauth2/token?code='.$code.'&client_id=242340718758-65veqhhdjfl21qc2klkfhbcb19rre8li.apps.googleusercontent.com&client_secret={secret}&redirect_uri=http://conor1998.web44.net/php/oauth.php&grant_type=authorization_code'; 
    $url = urlencode($url); 
    header('Location: $url'); 
} 


$response = file_get_contents($url); 
$response = json_decode($response); 



$channel_data = file_get_contents('https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel==mine&start-date=2014-08-01&end-date=2014-09-01&metrics=views&key=AIzaSyDTxvTLWXStUrhzgCDptVUG4dGBCpyL9MY?alt=json'); 
$channel_data = json_decode($channel_data, true); 

echo "<br />"; 
var_dump($channel_data); 
echo "<br />"; 

Я понятия не имею, почему это не работает. Я чувствую, что это связано главным образом с моей целью попытаться получить токен аутентификации для пользователя, чтобы я мог захватить их данные на YouTube. Любая помощь будет оценена

ответ

0

Код, который вы получаете с веб-сайта auth, не является токеном доступа! Вы должны exchange it for refresh and access tokens (см. № 4).

Чтобы получить свои жетоны, вам необходимо выполнить POST-запрос до https://accounts.google.com/o/oauth2/token. Он не работает через GET (как вы можете видеть при нажатии на ссылку).

Смежные вопросы