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 memberikan otorisasi ke 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, dan salin kode contoh, lalu ubah kode seperti yang ditunjukkan di bawah. 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 melihat perubahan yang perlu dilakukan pada konten yang ditautkan petunjuk.
Jika perlu mengakses Klien Python Google API dari project Google App Engine, Anda harus menggunakan akun layanan untuk mengelola izin.
Modifikasi
Ketika mengikuti petunjuk pada halaman contoh Oauth2 yang ditautkan, pastikan perubahan berikut:
- Aktifkan Google Search Console API, bukan Drive API.
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'
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
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.