Panduan memulai: Menjalankan Aplikasi Search Console di Python

Contoh aplikasi web ini mencetak daftar situs yang dapat Anda akses, dan {i>sitemap<i}, jika ada, untuk masing-masing situs tersebut.

Persyaratan

Untuk menjalankan program ini, Anda akan memerlukan:

  • Akses ke internet dan browser web, untuk mengizinkan aplikasi contoh.
  • Akun Google dengan setidaknya satu situs yang diverifikasi di Google Search Console.
  • Python 3 dan framework aplikasi web flask.

Petunjuk

Untuk contoh ini, Anda akan menyesuaikan contoh OAuth 2.0 untuk Aplikasi Server Web aplikasi. Aplikasi python contoh ini menggunakan framework aplikasi web flask untuk menjalankan aplikasi berbasis web yang mengelola kunci OAuth dan memanggil Google Cloud API. Anda akan menyesuaikan contoh yang ditautkan untuk memanggil Search Console API dan mencetak menghasilkan laman web.

Ikuti petunjuk penyiapan di halaman contoh OAuth yang ditautkan di atas, lalu salin kode contoh, lalu ubah kode seperti yang ditunjukkan di bawah ini. Secara khusus, ikuti petunjuk pengaturan untuk lingkungan pengkodean Anda, menyiapkan (atau menggunakan kembali) proyek yang dapat mengakses Search Console API di Konsol Google Cloud, dan membuat kredensial untuk aplikasi web.

Anda akan menggunakan Contoh kode lengkap untuk Python sebagai kode sumber untuk contoh ini.

Baca Modifikasi di bawah untuk melihat perubahan yang perlu dilakukan pada konten yang ditautkan petunjuk.

Jika Anda perlu mengakses Klien Python Google API dari Google App Engine Anda harus menggunakan akun layanan untuk mengelola izin Anda.

Modifikasi

Ketika mengikuti petunjuk pada halaman contoh Oauth2 yang ditautkan, pastikan perubahan berikut:

  1. Aktifkan Google Search Console API, bukan Drive API.
  2. Salin aplikasi contoh di akhir dokumen OAUth yang ditautkan di atas, lalu ganti

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

  3. Mengganti isi bahasa Python test_api_request() dengan kode berikut:

    @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. Dalam pengujian, kita perlu menetapkan OAUTHLIB_INSECURE_TRANSPORT secara manual ke 1 di lingkungan Bash: export OAUTHLIB_INSECURE_TRANSPORT=1. Jika Anda mendapatkan error tentang HTTPS yang diperlukan untuk menjalankan aplikasi contoh, coba setel HTTPS variabel.