Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
ich habe ein kleines Python-Skript geschriben, das eine google-Sheets Datei herunterladen soll. Man soll sich bei google anmelden (weil die token.json noch nicht existiert) Danach kommt aber ein Fehlermeldung: Zugriff verweigert... und
Python01 hat die Überprüfung durch Google nicht abgeschlossen. Die App wird gerade getestet und nur die vom Entwickler genehmigten Tester haben Zugriff.
.
Das Programm ist aber nur zum Testen und ich bin der "Entwickler".
wo kommt denn die zitierte Fehlermeldung her? Das ist ja offensichtlich keine Fehlermeldung, die direkt aus Python kommt. Außerdem wäre es gut, wenn du den Code zeigst und, falls es sonst noch Fehler gibt, den vollen Stacktrace von Python.
import os.path
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
# If modifying these scopes, delete the file token.json.
SCOPES = ["https://www.googleapis.com/auth/spreadsheets.readonly"]
# The ID and range of a spreadsheet.
SPREADSHEET_ID = "xxxxx"
RANGE_NAME = "Geräteliste!A:E"
def main():
"""Shows basic usage of the Sheets API.
Prints values from a sample spreadsheet.
"""
creds = None
# The file token.json stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
if os.path.exists("token.json"):
creds = Credentials.from_authorized_user_file("token.json", SCOPES)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(
"credentials.json", SCOPES
)
creds = flow.run_local_server(port=0)
# Save the credentials for the next run
with open("token.json", "w") as token:
token.write(creds.to_json())
try:
service = build("sheets", "v4", credentials=creds)
# Call the Sheets API
sheet = service.spreadsheets()
result = (
sheet.values()
.get(spreadsheetId=SPREADSHEET_ID, range=RANGE_NAME)
.execute()
)
values = result.get("values", [])
if not values:
print("No data found.")
return
# print("Name, Major:")
# for row in values:
# # Print columns A and E, which correspond to indices 0 and 4.
# print(f"{row[0]}, {row[4]}")
except HttpError as err:
print(err)
if __name__ == "__main__":
main()
der HTTP Fehlercode lautet "400 Bad Request" -> was soviel bedeutet wie, dass der Server, bei dem du dich versuchst anzumelden, was am Request bzw. dessen Inhalt moniert. Siehe z.B. auch https://developer.mozilla.org/en-US/doc ... Status/400. Was das bei dir ist -> keine Ahnung, da musst du dich wohl mal durch die Google Doku wühlen bzw. das ganze zeilenweise im interaktiven Python-Interpreter ausführen, um den Fehler einzugrenzen und bestenfalls aufzuspüren.