Krótkie wprowadzenie: uruchamianie aplikacji Search Console w Pythonie

Ta przykładowa aplikacja internetowa wyświetla listę witryn, do których masz dostęp, a mapy witryny dla każdej z tych witryn.

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 do tworzenia aplikacji internetowych Flask.

Instrukcje

W tym przykładzie dostosujesz przykład OAuth 2.0 dla aplikacji serwera WWW aplikacji. Ta przykładowa aplikacja w języku Python używa platformy aplikacji internetowej Flask do uruchomienia aplikacja internetowa, która zarządza kluczami protokołu OAuth i wywołuje interfejs Google Cloud API. Ty dostosuje linkowany przykład tak, aby wywoływać interfejs Search Console API i wydrukować w wynikach wyszukiwania.

Postępuj zgodnie z instrukcjami konfiguracji na przykładowej stronie OAuth, do której link znajdziesz powyżej, i skopiuj kod przykładowy kod, a potem zmodyfikuj go w sposób pokazany poniżej. Postępuj zgodnie z instrukcje konfiguracji środowiska kodowania, konfigurowania (lub ponownego użycia) projektu którzy mogą uzyskiwać dostęp do interfejsu Search Console API w konsoli Google Cloud i generować dane logowania dla aplikacji internetowej.

W tym przykładzie użyjesz pełnego przykładu kodu w Pythonie jako kodu źródłowego.

Przeczytaj sekcję Zmiany poniżej, aby dowiedzieć się, jakie zmiany należy wprowadzić w połączonych linkach za instrukcje.

Jeśli potrzebujesz dostępu do klienta interfejsu API Google w języku Python z poziomu Google App Engine projektu, musisz użyć konta usługi możesz zarządzać uprawnieniami.

Reguły przekształcania

Wykonaj te zmiany, wykonując instrukcje podane na stronie z przykładowym kodem Oauth2:

  1. Zamiast interfejsu Drive API włącz interfejs Google Search Console API.
  2. Skopiuj przykładową aplikację na końcu dokumentu OAUth, do którego link podano powyżej. i zamień to

    SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly']
    API_SERVICE_NAME = 'drive'
    API_VERSION = 'v2'
    
    Tym blokiem:
    SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
    API_SERVICE_NAME = 'searchconsole'
    API_VERSION = 'v1'
    

  3. Zastąp treść języka Python. test_api_request() z 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

  4. Podczas testów musieliśmy ręcznie ustawić 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ć .