Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, gostaria de saber se alguem tem um exemplo funcionando para trabalhar com API do google drive
eu tenho a biblioteca cliente carregada corretamente pelo composer, mas eu nao consigo êxito na execução
como por exemplo listar os arquivos do meu drive por exemplo, eu preciso na verdade montar uma função que vai alterar a permissão de um arquivo, setando acesso para um determinado email,
reporta o erro
An error occurred: Error calling POST : (401) Login Required
Mas setei os dados do cliente API
require_once './vendor/autoload.php';
$client = new Google_Client();
$client->setApplicationName("Web1");
$client->setDeveloperKey("9lhHpFyg-0");
$service = new Google_Service_Drive($client);
/**
* Retrieve a list of File resources.
*
* @param Google_Service_Drive $service Drive API service instance.
* @return Array List of Google_Service_Drive_DriveFile resources.
*/
function insertPermission($service, $fileId, $value, $type, $role) {
$newPermission = new Google_Service_Drive_Permission();
$newPermission->setValue($value);
$newPermission->setType($type);
$newPermission->setRole($role);
try {
return $service->permissions->insert($fileId, $newPermission);
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
}
return NULL;
}
insertPermission($service, "0B3h9hakl2lKbC14cGs", "000002@gmail.com", "user", "reader");Obrigado pela resposta, eu já tinha revirado estes exemplos, sem sucesso, da algumas falhas que não encontro a razão, mas obrigado mesmo assim
Alguem ai que ja trabalhou com isso, sabe me informar o que está faltando nos dados de acesso a API?
Cara isso é falha de autenticação.
Onde está setando as configurações abaixo?
$client->setClientId('<YOUR_CLIENT_ID>');
$client->setClientSecret('<YOUR_CLIENT_SECRET>');
$client->setRedirectUri('<YOUR_REGISTERED_REDIRECT_URI>');
Da uma olhada neste post abaixo
http://stackoverflow.com/questions/25707891/google-drive-php-api-simple-file-upload
OPa!! quando coloquei no post, faltou um pedaço, esta
$client = new Google_Client();
$client->setApplicationName("Web1");
$client->setDeveloperKey("9lhHpFyg-0");
$client->setClientId('<YOUR_CLIENT_ID>');
$client->setClientSecret('<YOUR_CLIENT_SECRET>');
$client->setRedirectUri('<YOUR_REGISTERED_REDIRECT_URI>');A grande maioria dessas apis são parecidas a forma de autenticação, para você estar realmente autenticado você deve gerar uma chave (access token), da uma olhada na documentação
https://developers.google.com/drive/v3/web/quickstart/php
no trecho de código abaixo é onde é gerado esse token de acesso
// Load previously authorized credentials from a file.
$credentialsPath = expandHomeDirectory(CREDENTIALS_PATH);
if (file_exists($credentialsPath)) {
$accessToken = file_get_contents($credentialsPath);
} else {
// Request authorization from the user.
$authUrl = $client->createAuthUrl();
printf("Open the following link in your browser:\n%s\n", $authUrl);
print 'Enter verification code: ';
$authCode = trim(fgets(STDIN));
// Exchange authorization code for an access token.
$accessToken = $client->authenticate($authCode);
// Store the credentials to disk.
if(!file_exists(dirname($credentialsPath))) {
mkdir(dirname($credentialsPath), 0700, true);
}
file_put_contents($credentialsPath, $accessToken);
printf("Credentials saved to %s\n", $credentialsPath);
}
$client->setAccessToken($accessToken);
https://github.com/eduardocasas/Google-Drive-PHP-API-Simple-App-Example