API Google senza login

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
radrad
Prode Principiante
Messaggi: 44
Iscrizione: mercoledì 8 febbraio 2012, 19:09

API Google senza login

Messaggio da radrad »

Ho scritto un'applicazione che utilizza le Youtube API V3 ed autenticazione OAuth per fare alcune semplici operazioni sui video.
Attualmente per far funzionare l'applicazione devo autenticarmi tramite una schermata di accesso di google e ricopiare il token di Google per autorizzare l'operazione.

Ora vorrei eliminare la schermata di accesso, login e tutte quegli inutili meccanismi di sicurezza. Spostare poi l'applicazione su una cartella non pubblica del server ed usare un cron job per avviarla.

Se la avvio però servono i login, come faccio quindi a togliere il login e far funzionare l'applicazione senza funzionalità browser/cookie?

Se è chiaro qualcosa, ringrazio ogni tipo di aiuto.
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2842
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: API Google senza login

Messaggio da rai »

Ciao
Non ho capito questo:
Attualmente per far funzionare l'applicazione devo autenticarmi tramite una schermata di accesso di google e ricopiare il token di Google per autorizzare l'operazione
Vuoi dire che ogni volta che esegui l'app devi fare login via browser? Allora evidentemente stai sbagliando qualcosa, se non è così spiegati meglio.

Bisogna insegnare all'applicazione a fornire autonomamente a Google il token richiesto per l'accesso ai dati utente.
Ovviamente il modo dipende dal linguaggio che usi. Io posso parlarti solo di come farlo con Python, e cioè usando la libreria oauth2client

Se non sei con Python dovrai aspettare che passi qualcun altro, e magari meglio se specifichi che linguaggio usi.

:ciao:
Avatar utente
Eresia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 362
Iscrizione: venerdì 30 giugno 2006, 1:20
Distribuzione: gentoo
Sesso: Maschile

Re: API Google senza login

Messaggio da Eresia »

con il browser puoi utilizzare js

Codice: Seleziona tutto

var GoogleAuth; // Google Auth object.
function initClient() {
  gapi.client.init({
      'apiKey': 'YOUR_API_KEY',
      'clientId': 'YOUR_CLIENT_ID',
      'scope': 'https://www.googleapis.com/auth/youtube.force-ssl',
      'discoveryDocs': ['https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest']
  }).then(function () {
      GoogleAuth = gapi.auth2.getAuthInstance();

      // Listen for sign-in state changes.
      GoogleAuth.isSignedIn.listen(updateSigninStatus);
  });
}
https://developers.google.com/youtube/v ... -library_1
emerge --auD --oneshot life/lucky-*
radrad
Prode Principiante
Messaggi: 44
Iscrizione: mercoledì 8 febbraio 2012, 19:09

Re: API Google senza login

Messaggio da radrad »

rai ha scritto:
martedì 23 marzo 2021, 19:20
Ciao
Non ho capito questo:
Attualmente per far funzionare l'applicazione devo autenticarmi tramite una schermata di accesso di google e ricopiare il token di Google per autorizzare l'operazione
Vuoi dire che ogni volta che esegui l'app devi fare login via browser? Allora evidentemente stai sbagliando qualcosa, se non è così spiegati meglio.
accade esattamente questo.

L'applicazione è scritta in PHP, per la gestione di alcune dirette video programmate. La versione finale lavora tra server e server, cioè tra il mio server con cron job ed il server di Youtube. La versione di test ha una semplice interfaccia, ma è solo per visualizzare il debug.

Nella documentazione di Google API ho trovato diverse contraddizioni e non è stata di aiuto.
Al momento il punto cruciale è togliere il login via browser. Ho quindi ricominciato questa parte.

Dalla documentazione per PHP trovo un esempio: https://developers.google.com/youtube/v ... ?apix=true

Codice: Seleziona tutto

$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('YOUR_CLIENT_SECRET_FILE.json');
$client->setAccessType('offline');

// Request authorization from the user.
$authUrl = $client->createAuthUrl();
printf("Open this 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->fetchAccessTokenWithAuthCode($authCode);
$client->setAccessToken($accessToken);
Bene quando il codice arriva a

Codice: Seleziona tutto

$client->setAuthConfig('YOUR_CLIENT_SECRET_FILE.json');
mi dice che il file delle credenziali non esiste. Anche se ho copiato il .json esportato dalla dashboard di Google, in una cartella sul server, ovviamente non nella public_html.

Dove è l'errore? Potreste aiutarmi?

Grazie
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 11 ospiti