Я создавал небольшой скрипт для получения ежемесячных просмотров YouTube с канала YouTube пользователя. Этот сценарий работает нормально, но каждый раз, когда они обновляют страницу, они должны повторно получить доступ. Я бы предпочел, чтобы это ушло, но я не могу найти решение онлайн.
Я взглянул на токены обновления, но даже когда я добавляю их в обновление, пользователям все равно приходится повторно запрашивать данные, возможно, это как-то связано с созданием пользовательского сеанса или сохранением куки?
Вот мой текущий рабочий скрипт
if(isset($_GET['code'])) {
// try to get an access token
$code = $_GET['code'];
$url = 'https://accounts.google.com/o/oauth2/token';
// this will be our POST data to send back to the OAuth server in exchange
// for an access token
$params = array(
"code" => $code,
"client_id" => $oauth2_client_id,
"client_secret" => $oauth2_secret,
"redirect_uri" => $oauth2_redirect,
"grant_type" => "authorization_code");
// build a new HTTP POST request
$request = new HttpPost($url);
$request->setPostData($params);
$request->send();
// decode the incoming string as JSON
$responseObj = json_decode($request->getHttpResponse());
$currentDate = date("Y-m-d");
$monthBefore = date('Y-m-d', strtotime(date('Y-m')." -1 month"));
$views = file_get_contents('https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date='.$monthBefore.'&end-date='.$currentDate.'&metrics=views&access_token='.$responseObj->access_token);
$json = json_decode($views);
}
$monthlyViews = $json->rows[0][0];
var_dump($monthlyViews);
Задача ещё не решена.
Других решений пока нет …