Diese Beispiel-Web-App druckt die Liste der Websites, auf die Sie zugreifen können, sowie die Sitemaps, für jede dieser Websites.
Voraussetzungen
Zum Ausführen dieses Programms benötigen Sie Folgendes:
- Zugriff auf das Internet und einen Webbrowser, um die Beispiel-App zu autorisieren.
- Ein Google-Konto mit mindestens einer in der Google Search Console bestätigten Website.
- Python 3 und das flask-Framework für Webanwendungen
Anleitung
Für dieses Beispiel passen Sie das Beispiel OAuth 2.0 für Webserveranwendungen an. . Diese Python-Beispiel-App verwendet das flask-Webanwendungs-Framework, um eine webbasierte Anwendung, die OAuth-Schlüssel verwaltet und eine Google Cloud API aufruft. Sie passen das verlinkte Beispiel so an, dass die Search Console API aufgerufen und die Ergebnisse auf einer Webseite ausgegeben werden.
Befolgen Sie die Einrichtungsanleitung auf der oben verlinkten OAuth-Beispielseite und kopieren Sie die Beispielcode und ändern Sie den Code dann wie unten gezeigt. Beachten Sie insbesondere die Einrichtungsanleitung für Ihre Programmierumgebung, Einrichten (oder Wiederverwenden) eines Projekts die in der Google Cloud Console auf die Search Console API zugreifen und Anmeldedaten generieren für eine Webanwendung.
Sie verwenden das vollständige Codebeispiel für Python als Quellcode für dieses Beispiel verwenden.
Im Abschnitt Änderungen unten erfahren Sie, welche Änderungen Sie an den verlinkten Seiten vornehmen müssen. Anleitung.
Wenn Sie von einer Google App Engine aus auf den Google API Python-Client zugreifen müssen müssen Sie ein Dienstkonto um Ihre Berechtigungen zu verwalten.
Änderungen
Wenn Sie der Anleitung auf der verlinkten OAuth2-Beispielseite folgen, folgende Änderungen:
- Die Google Search Console API statt der Drive API aktivieren
Kopieren Sie die Beispielanwendung am Ende des oben verlinkten Dokuments und ersetzen Sie diese
SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly'] API_SERVICE_NAME = 'drive' API_VERSION = 'v2'
Dabei gilt:SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly'] API_SERVICE_NAME = 'searchconsole' API_VERSION = 'v1'
Text der Python-Sprache ersetzen
test_api_request()
mit dem folgenden Code:@app.route('/test') def test_api_request(): if 'credentials' not in flask.session: return flask.redirect('authorize') # Load credentials from the session. credentials = google.oauth2.credentials.Credentials( **flask.session['credentials']) # Retrieve list of properties in account search_console_service = googleapiclient.discovery.build( API_SERVICE_NAME, API_VERSION, credentials=credentials) site_list = search_console_service.sites().list().execute() # Filter for verified URL-prefix websites. verified_sites_urls = [s['siteUrl'] for s in site_list['siteEntry'] if s['permissionLevel'] != 'siteUnverifiedUser' and s['siteUrl'].startswith('http')] # Print the sitemaps for all websites that you can access. results = '<!DOCTYPE html><html><body><table><tr><th>Verified site</th><th>Sitemaps</th></tr>' for site_url in verified_sites_urls: # Retrieve list of sitemaps submitted sitemaps = search_console_service.sitemaps().list(siteUrl=site_url).execute() results += '<tr><td>%s</td>' % (site_url) # Add a row with the site and the list of sitemaps if 'sitemap' in sitemaps: sitemap_list = "<br />".join([s['path'] for s in sitemaps['sitemap']]) else: sitemap_list = "<i>None</i>" results += '<td>%s</td></tr>' % (sitemap_list) results += '</table></body></html>' # Save credentials back to session in case access token was refreshed. # ACTION ITEM: In a production app, you likely want to save these # credentials in a persistent database instead. flask.session['credentials'] = credentials_to_dict(credentials) return results
In unseren Tests mussten wir OAUTHLIB_INSECURE_TRANSPORT manuell festlegen in der Bash-Umgebung auf 1 gesetzt:
export OAUTHLIB_INSECURE_TRANSPORT=1
. Wenn Sie Fehlermeldungen erhalten, dass HTTPS zum Ausführen der Beispiel-App erforderlich ist, versuchen Sie, .