Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

adrianno

API google drive

Recommended Posts

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");

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguem ai que ja trabalhou com isso, sabe me informar o que está faltando nos dados de acesso a API?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>');

Compartilhar este post


Link para o post
Compartilhar em outros sites

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);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.