Hızlı başlangıç kılavuzu: Python'da Search Console Uygulaması çalıştırma

Bu örnek web uygulaması, erişebileceğiniz sitelerin listesini ve varsa bu sitelerin her birinin site haritalarını yazdırır.

Koşullar

Bu programı çalıştırmak için aşağıdakilere ihtiyacınız olacaktır:

  • Örnek uygulamayı yetkilendirmek için internete ve web tarayıcısına erişim.
  • En az bir web sitesi Google Search Console'da doğrulanmış bir Google Hesabı.
  • Python 3 ve flask web uygulaması çerçevesi.

Talimatlar

Bu örnekte, Web Sunucusu Uygulamaları için OAuth 2.0 örnek uygulamasını uyarlayacaksınız. Bu örnek python uygulaması, OAuth anahtarlarını yöneten ve Google Cloud API'ye çağrı yapan web tabanlı bir uygulamayı çalıştırmak için flask web uygulaması çerçevesini kullanır. Bağlı örneği, Search Console API'yi çağıracak ve sonuçları bir web sayfasında yazdıracak şekilde uyarlarsınız.

Yukarıda bağlantısı verilen OAuth örnek sayfasındaki kurulum talimatlarını uygulayın, örnek kodu kopyalayın, ardından kodu aşağıda gösterildiği gibi değiştirin. Özellikle kodlama ortamınızla ilgili kurulum talimatlarını uygulayın, Google Cloud Console'da Search Console API'ye erişebilen bir projeyi oluşturun (veya yeniden kullanın) ve bir web uygulaması için kimlik bilgileri oluşturun.

Bu örneğin kaynak kodu olarak Python için tam kod örneğini kullanacaksınız.

Bağlantısı verilen talimatlarda yapmanız gereken değişiklikleri görmek için aşağıdaki Değişiklikler bölümünü okuyun.

Google API Python İstemcisine bir Google App Engine projesinden erişmeniz gerekiyorsa izinlerinizi yönetmek için hizmet hesabı kullanmanız gerekir.

Değişiklikler

Bağlı Oauth2 örnek sayfasındaki talimatları uygularken aşağıdaki değişiklikleri yapın:

  1. Drive API yerine Google Search Console API'yi etkinleştirin.
  2. Yukarıda bağlantısı verilen OAUth dokümanının sonundaki örnek uygulamayı kopyalayın ve

    SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly']
    API_SERVICE_NAME = 'drive'
    API_VERSION = 'v2'
    
    kısmını şununla değiştirin:
    SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
    API_SERVICE_NAME = 'searchconsole'
    API_VERSION = 'v1'
    

  3. Python dili test_api_request() işlevinin gövdesini aşağıdaki kodla değiştirin:

    @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. Testlerimizde, Bash ortamında OAUTHLIB_INSECURE_TRANSPORT değerini manuel olarak 1'e ayarlamamız gerekiyordu: export OAUTHLIB_INSECURE_TRANSPORT=1. Örnek uygulamayı çalıştırmak için HTTPS'nin gerektiğiyle ilgili hatalar alırsanız söz konusu değişkeni ayarlamayı deneyin.