Ich habe ein Dienstkonto für mein Google Kalender-API-Projekt eingerichtet. Die Idee ist, dass meine Website zu meinen Google-Kalender und Anzeige Ereignisse verbinden kann, usw. Wie es von GoogleHttpAccessTokenRefreshError at ... unauthorized_client: Der Client ist nicht berechtigt, Zugriffstokens mit dieser Methode abzurufen
Service account clients are created when domain-wide delegation is
enabled on a service account.
die in der Tat geschehen ist, und so habe ich ein Verbindungs OAuth 2.0 client ID
gesetzt wurde. So weit, ist es gut. Ich erzeugte eine json
-Datei, die ich verwendet, um eine Verbindung und versuchen Sie es mit diesen Code zur Authentifizierung
from cal.models import Cal as Caldb
import httplib2
from apiclient.discovery import build
from oauth2client.file import Storage
from oauth2client.client import OAuth2WebServerFlow
from oauth2client import tools
from calendar import monthrange
from calendar_gui import MyCalendar
from datetime import datetime
from datetime import date
from django.utils.safestring import mark_safe
from oauth2client.service_account import ServiceAccountCredentials
import os
from django.conf import settings
def authenticate():
scope= ['https://www.googleapis.com/auth/calendar']
credentials = ServiceAccountCredentials.from_json_keyfile_name(os.path.join(settings.PROJECT_ROOT, '../', 'myjson.json'), scopes=scope)
delegated_credentials = credentials.create_delegated('[email protected]')
http = httplib2.Http()
http = delegated_credentials.authorize(http)
service = build(serviceName='calendar', version='v3', http=http, credentials=credentials)
return service
Aber leider
service = build(serviceName='calendar', version='v3', http=http, credentials=credentials)
File "/usr/local/lib/python2.7/dist-packages/oauth2client/util.py", line 137, in positional_wrapper
return wrapped(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/googleapiclient/discovery.py", line 214, in build
cache)
File "/usr/local/lib/python2.7/dist-packages/googleapiclient/discovery.py", line 261, in _retrieve_discovery_doc
resp, content = http.request(actual_url)
File "/usr/local/lib/python2.7/dist-packages/oauth2client/transport.py", line 153, in new_request
credentials._refresh(orig_request_method)
File "/usr/local/lib/python2.7/dist-packages/oauth2client/client.py", line 765, in _refresh
self._do_refresh_request(http_request)
File "/usr/local/lib/python2.7/dist-packages/oauth2client/client.py", line 834, in _do_refresh_request
raise HttpAccessTokenRefreshError(error_msg, status=resp.status)
HttpAccessTokenRefreshError: unauthorized_client: Client is unauthorized to retrieve access tokens using this method.
ich den Google Kalender api aktiviert haben. Tatsächlich habe ich das Gefühl, als wäre ich allen Schritten gefolgt. Tatsächlich habe ich das schon einmal mit vollem Erfolg getan, aber jetzt bin ich perplex. Ich lese, dass ich vielleicht 24-48 Stunden warten muss, bevor das alles in Kraft tritt. Könnte es so einfach sein?
Für jetzt, ich teste das nur lokal. Bisher wurde noch nichts auf den Server übertragen.
Ich habe das gesehen, aber ich versuche nur, mich mit der 'json'-Datei, die automatisch für mich generiert wurde, zusammen mit dem Client-Schlüssel zu verbinden. –