Bu örnek web uygulaması, erişebileceğiniz sitelerin listesini ve site haritalarını yazdırır. (varsa) gösterir.
Şartlar
Bu programı çalıştırmak için şunlara ihtiyacınız vardır:
- Örnek uygulamayı yetkilendirmek için internete ve web tarayıcısına erişim.
- Google Search Console'da doğrulanmış en az bir web sitesine sahip Google Hesabı.
- Python 3 ve flask web uygulaması çerçevesi
Talimatlar
Bu örnekte, OAuth 2.0 for Web Server Applications (Web Sunucusu Uygulamaları için OAuth 2.0) örneğini uyarlayacaksınız. dönüştürmenizi sağlar. Bu örnek Python uygulaması, API'yi çalıştırmak için flask web uygulama çerçevesini OAuth anahtarlarını yöneten ve Google Cloud API çağıran web tabanlı bir uygulamadır. Siz bağlı örneği Search Console API'yi çağıracak şekilde uyarlar ve bir web sayfasında bulunur.
Yukarıda bağlantısı verilen OAuth örnek sayfasındaki kurulum talimatlarını uygulayın ve örnek koddan daha sonra kodu aşağıda gösterildiği gibi değiştirin. Özellikle, kodlama ortamınız için kurulum talimatları, proje oluşturma (veya yeniden kullanma) Google Cloud konsolunda Search Console API'ye erişebilen ve kimlik bilgileri oluşturarak web uygulaması için.
Tam kod örneğini kullanmak için Python'u kullanmayı tercih edebilirsiniz.
Bağlı olan sayfada hangi değişiklikleri yapmanız gerektiğini görmek için aşağıdaki Değişiklikler bölümünü okuyun bakın.
Google API Python İstemcisine Google App Engine'den erişmeniz gerekiyorsa bir hizmet hesabı kullanmanız ve tıklayın.
Değişiklikler
Bağlı Oauth2 örnek sayfasındaki talimatları uygularken aşağıdaki değişiklikler:
- Drive API yerine Google Search Console API'yi etkinleştirin.
Yukarıda bağlantısı verilen RAUth belgesinin sonundaki örnek uygulamayı kopyalayın. ve bunu
SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly'] API_SERVICE_NAME = 'drive' API_VERSION = 'v2'
Bununla:SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly'] API_SERVICE_NAME = 'searchconsole' API_VERSION = 'v1'
Python dilinin gövdesini değiştirin
test_api_request()
fonksiyonunu aşağıdaki kodla kullanabilirsiniz:@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
Testimizde, Bash ortamında OAUTHLIB_INSECURE_TRANSPORT parametresini 1 olarak manuel olarak ayarlamamız gerekiyordu:
export OAUTHLIB_INSECURE_TRANSPORT=1
. Örnek uygulamayı çalıştırmak için HTTPS gereken hakkında hatalar alırsanız şu ayarları yapmayı deneyin: değişkenine eklenmelidir.