IT-Swarm.Net

Přístup k rozhraní API tabulky Google bez oprávnění tokenu

Vytvořil (a) jsem Google Spreadsheet a zadal (a) upravený přístup všem (lze upravovat i bez přihlášení).

Zde je odkaz . Chci tento list aktualizovat pomocí rozhraní API aplikace Google Spreadsheet. Ale dostávám chybu. Můj požadavek je aktualizovat list přes API i bez přístupu pověření.

enter image description here

10
Nageswaran

Je možné zapisovat do tabulky bez OAuth nebo API Keys. Musíte použít Service Account Keys

Zde je to, co jsem udělal pro prostředí Node.js. 

  1. Získat klíč účtu služby z https://console.cloud.google.com/apis/credentials (Zde můžete také omezit, co je povoleno todo)
    1. Při vytváření dbejte na to, abyste klikli na Furnish a new private key
    2. Když se vás zeptá, jak stáhnout klíč, vyberte JSON.
  2. service account key, které jste právě vytvořili, obsahuje client_email.
    1. Přejděte do tabulky Google a povolte tomuto client_email přístup k zápisu v tomto dokumentu
  3. Ověřte pomocí následujícího kódu

    let jwtClient = new google.auth.JWT(client_email, null, private_key, [ "https://www.googleapis.com/auth/spreadsheets", ]);//authenticate requestjwtClient.authorize(function(err, tokens) { // at this point the authentication is done you can now use `jwtClient` // to read or write to the spreadsheet});

client_email a private_key jsou součástí service account key

Podrobnější popis naleznete zde. http://isd-soft.com/tech_blog/accessing-google-apis-using-service-account-node-js/ Také všechny kredity jdou na tuto stránku. 

4

Musíte být oprávněni k provádění takových požadavků

Každý požadavek, který vaše aplikace odešle do rozhraní API služby Google Sheets, musí Identifikovat vaši žádost ve službě Google. Existují dva způsoby, jak identifikovat aplikaci : Pomocí tokenu OAuth 2.0 (který také opravňuje požadavek ) A/nebo pomocí klíče API aplikace. Jak Určit, které z těchto možností použít:

Pokud požadavek vyžaduje autorizaci (např. Požadavek na soukromé údaje Jednotlivce), pak musí aplikace s požadavkem poskytnout token OAuth [.____. 2.0]. Aplikace může také poskytnout klíč API, ale nemusí. Pokud požadavek nevyžaduje oprávnění (Například požadavek na veřejná data), musí aplikace Poskytnout buď klíč API nebo token OAuth 2.0, nebo - jakákoliv možnost je pro vás nejvhodnější.

A je to. Neexistuje žádná obejít povolení.

3
noogui

Nakonec se ponořil dost hluboko a našel odpověď. Jakýkoli druh psaní, dokonce i veřejně upravitelných listů vyžaduje tok OAuth:

https://issuetracker.google.com/issues/36755576#comment3

0
Andrew