I am trying to set up a YouTube API connection test (with the test code provided by the API).
I have:
- created an API key;
- created an OAuth and placed the file on my server;
- the time on my server is well synchronized.
And I get the following error:
Fatal error: Uncaught InvalidArgumentException: Invalid code in /home/.../src/Client.php:239
Stack trace:
#0 /home/.../test.php(35): GoogleClient->fetchAccessTokenWithAuthCode('')
#1 {main} thrown in /home/.../src/Client.php on line 239
My code :
<?php
define('STDIN',fopen("php://stdin","r"));
/**
* Sample PHP code for youtube.channels.list
* See instructions for running these code samples locally:
* https://developers.google.com/explorer-help/guides/code_samples#php
*/
if (!file_exists(__DIR__ . '/apiGoogle/vendor/autoload.php')) {
throw new Exception(sprintf('Please run "composer require google/apiclient:~2.0" in "%s"', __DIR__));
}
require_once __DIR__ . '/apiGoogle/vendor/autoload.php';
$client = new Google_Client();
$client->setApplicationName('API code samples');
$client->setScopes([
'https://www.googleapis.com/auth/youtube.readonly',
]);
// TODO: For this request to work, you must replace
// "YOUR_CLIENT_SECRET_FILE.json" with a pointer to your
// client_secret.json file. For more information, see
// https://cloud.google.com/iam/docs/creating-managing-service-account-keys
$client->setAuthConfig('apiGoogle/code_secret_client_80354467589-77athnqb19ps1daaskbr8dm1plhrkind.apps.googleusercontent.com.json');
$client->setAccessType('offline');
// Request authorization from the user.
$authUrl = $client->createAuthUrl();
printf("Open this link in your browser:
%s
", $authUrl);
print('Enter verification code: ');
$authCode = trim(fgets(STDIN));
// Exchange authorization code for an access token.
$accessToken = $client->fetchAccessTokenWithAuthCode($authCode);
$client->setAccessToken($accessToken);
// Define service object for making API requests.
$service = new Google_Service_YouTube($client);
$queryParams = [
'forUsername' => 'GoogleDevelopers'
];
$response = $service->channels->listChannels('snippet,contentDetails,statistics', $queryParams);
print_r($response);
question from:
https://stackoverflow.com/questions/65936702/invalid-code-error-with-youtube-api-with-php 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…