Google PHP API Client: les autorisations Insuffisantes
J'ai un code PHP qui utilisent Google PHP API Client d'utiliser le service.
<?php
require_once 'Google/Client.php';
require_once 'Google/Service/Drive.php';
const CLIENT_ID = '[MYCLIENTID]';
const SERVICE_ACCOUNT_NAME = '[MYSERVICEACCOUNID]';
//Make sure you keep your key.p12 file in a secure location, and isn't
//readable by others.
const KEY_FILE = './[MYPRIVATEKEY].p12';
//Load the key in PKCS 12 format (you need to download this from the
//Google API Console when the service account was created.
$client = new Google_Client();
$client->setApplicationName("Google Drive Sample");
$key = file_get_contents(KEY_FILE);
$client->setClientId(CLIENT_ID);
$client->setAssertionCredentials(new Google_Auth_AssertionCredentials(
SERVICE_ACCOUNT_NAME,
array('https://www.googleapis.com/auth/drive'),
$key)
);
$client->setClientId(CLIENT_ID);
if ($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion();
}
//Get the json encoded access token.
$token = $client->getAccessToken();
echo "<pre>";
$service = new Google_Service_Drive($client);
$service->apps->listApps();
echo "</pre>";
?>
J'avais CLIENT_ID, SERVICE_ACCOUNT_NAME et KEY_FILE correctement installé. Lorsque j'exécute le code, j'obtiens les messages d'erreur suivants:
Fatal error: Uncaught exception 'Google_Service_Exception' with message 'Error calling GET https://www.googleapis.com/drive/v2/apps: (403) Insufficient Permission' in C:\xampp\htdocs\oauth\Google\Http\REST.php:79
Stack trace:
#0 C:\xampp\htdocs\oauth\Google\Http\REST.php(44): Google_Http_REST::decodeHttpResponse(Object(Google_Http_Request))
#1 C:\xampp\htdocs\oauth\Google\Client.php(499): Google_Http_REST::execute(Object(Google_Client), Object(Google_Http_Request))
#2 C:\xampp\htdocs\oauth\Google\Service\Resource.php(195): Google_Client->execute(Object(Google_Http_Request))
#3 C:\xampp\htdocs\oauth\Google\Service\Drive.php(1281): Google_Service_Resource->call('list', Array, 'Google_Service_...')
#4 C:\xampp\htdocs\oauth\drive_client.php(41): Google_Service_Drive_Apps_Resource->listApps()
#5 {main}
thrown in C:\xampp\htdocs\oauth\Google\Http\REST.php on line 79
Ce qui peut être incorrect avec le code?
OriginalL'auteur Dino | 2014-04-06
Vous devez vous connecter pour publier un commentaire.
La apps#liste méthode nécessite l'autorisation de la portée
https://www.googleapis.com/auth/drive.apps.readonly
. Il suffit de l'ajouter au tableau de portées:OriginalL'auteur Vinicius Pinto
Vous devez même désactiver Google drive api pour votre projet dans la Console Développeur en vertu de l'Api & auth
OriginalL'auteur StanleyD