Войдите в систему с учетной записью Google и получите всю информацию о профиле, используя Google API

Поскольку я пытаюсь войти в систему с учетной записью Google и получить информацию о том, что вошли в информацию, но я получаю ошибку.

Это мой код,

error_reporting(E_ALL);
ini_set('display_errors',1);
require_once __DIR__.'/vendor/autoload.php';

session_start();

$client = new Google_Client();
$client->setAuthConfig('client_secret_gmail.json');
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);
 $_SESSION['access_token'];
 echo "<pre>";
 print_r($_SESSION['access_token']);
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
  $client->setAccessToken($_SESSION['access_token']);
  $drive = new Google_Service_Drive($client);
  $files = $drive->files->listFiles(array())->getItems();
  echo json_encode($files);
} else {
  $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/api/oauth2callback.php';
  header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
} 

и ответ таков:

Fatal error:  Uncaught Google_Service_Exception: {
 "error": {
  "errors": [
     {
        "domain": "global",
        "reason": "insufficientPermissions",
        "message": "Insufficient Permission"
     }
  ],
  "code": 403,
  "message": "Insufficient Permission"
 }
}

1 ответ

Вы запрашиваете разрешение METADATA. вам нужно DRIVE_READONLY, а не DRIVE_METADATA_READONLY

$client->addScope(Google_Service_Drive::DRIVE_READONLY );

К вашему сведению Google официальная документация

Другие вопросы по тегам