Domanda

Sto cercando di utilizzare lo script di app per caricare i risultati di bigQuery in un foglio di calcolo di Google. Ecco il mio codice

function runQuery() {
var projectId = 'xxxxx';

var request = {
  query: 'select * from ASRLogs.LocationBasedClicks;'
};

var queryResults = BigQuery.Jobs.query(request,projectId);
var jobId = queryResults.jobReference.jobId;

// Check on status of the Query Job. 
var sleepTimeMs = 500;

while(!queryResults.jobComplete)
{
   Utilities.sleep(sleepTimeMs);
   sleepTimeMs *=2;
   queryResults = BigQuery.Jobs.getQueryResults(projectId, jobId);
}

// Get all the rows of the result. 
var rows = queryResults.rows;
while (queryResults.pageToken) {
   queryResults = BigQuery.Jobs.getQueryResults(projectId, jobId, {
       pageToken: queryResults.pageToken
   });
   rows = rows.concat(queryResults.rows);
}

if (rows) {
     var spreadsheet = SpreadsheetApp.create("BigQuery Results");
     var sheet = spreadsheet.getActiveSheet();

     // Append the headers
     var headers = queryResults.schema.fields.map(function(field) {
       return field.name;
     });
     sheet.appendRow(headers)

     // Append the results. 
     var data = new Array(rows.length);
     for (var i = 0; i < rows.length; i ++){
       var cols = rows[i].f;
       data[i] = new Array(cols.length);
       for (var j =0; j < cols.length; j++){
         data[i][j] = cols[j].v;
       }
     }
     sheet.getRange(2,1,rows.length,headers.length).setValue(data);

     Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
} else {
  Logger.log('No rows returned.')
}
}
.

L'errore che ottengo è

.

Errore: invalid_client
Il cliente OAUTH non è stato trovato.
Richiedi dettagli
. - cookie_policy_enforce= falso
- Scope= https://www.googleappis.com/auth/bigquery https://www.googleapis.com/auth/spreadsheets
- Response_type= codice gsession
- redirect_uri= https://script.google.com/oauthcallback
- Access_type= offline - Approval_prompt= Force
- Stato= ACJPJVHWUS-SSPO-J9B5VLH_UL4VOKI3QRANL-GWA7YWXZ6-RFELZBULQ2IGLDHRGLQUHNVLGPSMSONLQUEY45Ott1IGZHWFOWQ5E52JF6L_G-5PPPPWCF40DKV_JYRY9WELQPRQ
- client_id=734978265744@developer.gserviceaccount.com
. - HL= IT

Sono percorsi qualcosa? Ho fatto quanto segue.

    .
  1. Abilitato BigQuery API in Google Servizie
  2. Abilitato BigQuery nella console sviluppatore per il progetto.
È stato utile?

Soluzione

Ho avuto questo esatto problema ieri.

Ho copiato un documento più volte, che a turno copia tutti gli script all'interno di esso, aggiungendo ciascuno con "Copia di".Quello che avevo finito era "Copia della copia della copia della copia della copia di".

Come ultima risorsa, ho ribattezzato il progetto di Script per "", e hey Presto, è diventato buono.

La mia teoria è che dal momento che il nome del progetto dello script viene utilizzato come nome dell'applicazione che richiede l'autorizzazione, c'è un limite di caratteri qui.

Rinominare il progetto a un nome più breve risolvere il problema?

Altri suggerimenti

Controllare se il tuo ID cliente o il segreto non contiene spazi nel tuo codice - questo è stato il mio problema che non ho notato quando copia le informazioni dalla console

Passare alla sezione Consent Screen nella tua console di Google API (dalla barra laterale a sinistra), modificare il nome del prodotto e salvare le modifiche.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top