Panduan memulai: Menjalankan Aplikasi Search Console di Python

Aplikasi web contoh ini mencetak daftar situs yang dapat Anda akses, dan peta situs, jika ada, untuk setiap situs tersebut.

Persyaratan

Untuk menjalankan program ini, Anda perlu:

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

Petunjuk

Untuk contoh ini, Anda akan menyesuaikan aplikasi contoh OAuth 2.0 untuk Aplikasi Server Web. Contoh aplikasi Python ini menggunakan framework aplikasi web flask untuk menjalankan aplikasi berbasis web yang mengelola kunci OAuth dan memanggil Google Cloud API. Anda akan menyesuaikan contoh tertaut untuk memanggil Search Console API dan mencetak hasilnya di halaman web.

Ikuti petunjuk penyiapan pada halaman contoh OAuth yang ditautkan di atas, salin kode contoh, lalu ubah kode seperti yang ditunjukkan di bawah ini. Secara khusus, ikuti petunjuk penyiapan untuk lingkungan coding Anda, siapkan (atau gunakan kembali) project yang dapat mengakses Search Console API di Google Cloud Console, dan buat 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 Anda lakukan pada petunjuk tertaut.

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

Modifikasi

Saat mengikuti petunjuk pada halaman contoh Oauth2 yang tertaut, buat perubahan berikut:

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

    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. Ganti isi fungsi test_api_request() bahasa Python 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, kami 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 tetapkan variabel tersebut.