Ta przykładowa aplikacja internetowa wyświetla listę witryn, do których masz dostęp, oraz map witryn każdej z nich.
Wymagania
Aby uruchomić ten program, musisz:
- Dostęp do internetu i przeglądarki w celu autoryzacji aplikacji próbnej.
- Konto Google z co najmniej 1 witryną zweryfikowaną w Google Search Console.
- Python 3 i platforma aplikacji internetowych flask.
Instrukcje
W tym przykładzie dostosujesz przykładową aplikację OAuth 2.0 na potrzeby aplikacji serwera WWW. Ta przykładowa aplikacja w Pythonie wykorzystuje platformę aplikacji internetowej Flask do uruchomienia aplikacji internetowej, która zarządza kluczami OAuth i wywołuje interfejs Google Cloud API. Link do przykładu dostosujesz tak, aby wywoływał interfejs Search Console API i wydrukował wyniki na stronie internetowej.
Postępuj zgodnie z instrukcjami konfiguracji na przykładowej stronie OAuth, do której link znajdziesz powyżej, i skopiuj przykładowy kod, a następnie zmodyfikuj go w sposób pokazany poniżej. Postępuj zgodnie z instrukcjami konfiguracji środowiska programistycznego, skonfiguruj (lub użyj ponownie) projekt z dostępem do interfejsu Search Console API w konsoli Google Cloud i wygeneruj dane logowania do aplikacji internetowej.
Jako kodu źródłowego tego przykładowego przykładowego kodu użyjesz przykładowego Pełnego kodu na potrzeby Pythona.
Zapoznaj się z sekcją Zmiany poniżej, aby dowiedzieć się, jakie zmiany należy wprowadzić w powiązanych instrukcjach.
Jeśli chcesz uzyskać dostęp do klienta interfejsu API Google w Pythonie z projektu Google App Engine, musisz użyć konta usługi do zarządzania uprawnieniami.
Reguły przekształcania
Postępując zgodnie z instrukcjami na linkowanej stronie przykładowej Oauth2, wprowadź te zmiany:
- Zamiast interfejsu Drive API włącz interfejs Google Search Console API.
Skopiuj przykładową aplikację na końcu dokumentu OAUth, do którego link znajdziesz powyżej, i zastąp ten fragment:
SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly'] API_SERVICE_NAME = 'drive' API_VERSION = 'v2'
SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly'] API_SERVICE_NAME = 'searchconsole' API_VERSION = 'v1'
Zastąp treść funkcji języka Python
test_api_request()
tym kodem:@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
Podczas testów musieliśmy ręcznie ustawić wartość OAUTHLIB_INSECURE_TRANSPORT na 1 w środowisku Bash:
export OAUTHLIB_INSECURE_TRANSPORT=1
. Jeśli pojawią się błędy dotyczące protokołu HTTPS wymaganego do uruchomienia przykładowej aplikacji, spróbuj ustawić tę zmienną.