Panduan memulai: Menjalankan Aplikasi Search Console di Python

Contoh aplikasi web ini mencetak daftar situs yang dapat Anda akses, dan peta situs, jika ada, untuk setiap 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 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 di halaman contoh OAuth yang ditautkan di atas, salin kode contohnya, lalu ubah kodenya seperti yang ditunjukkan di bawah ini. Secara khusus, ikuti petunjuk penyiapan untuk lingkungan coding Anda, menyiapkan (atau menggunakan kembali) project 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 mengetahui perubahan yang perlu dilakukan pada petunjuk yang ditautkan.

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

Modifikasi

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

  1. Aktifkan Google Search Console API, bukan Drive API.
  2. Salin aplikasi contoh di akhir dokumen OAUth yang ditautkan di atas, dan 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. 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, 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 tetapkan variabel tersebut.