التشغيل السريع: تشغيل تطبيق Search Console في بايثون

يطبع هذا النموذج من تطبيق الويب قائمة المواقع التي يمكنك الوصول إليها وملفات خرائط الموقع، إن وجدت، لكل موقع من هذه المواقع.

المتطلبات

لتشغيل هذا البرنامج، ستحتاج إلى:

  • الاتصال بالإنترنت ومتصفّح الويب من أجل تفويض نموذج التطبيق
  • حساب Google يضم موقعًا إلكترونيًا واحدًا على الأقل تم إثبات ملكيته في Google Search Console.
  • لغة Python 3 وإطار عمل تطبيق الويب flask.

التعليمات

في هذا النموذج، عليك تعديل نموذج OAuth 2.0 لتطبيقات خادم الويب. التطبيق. يستخدم نموذج تطبيق بايثون هذا إطار عمل تطبيق الويب flask لتشغيل تطبيق مستنِد إلى الويب يدير مفاتيح OAuth ويطلب من Google Cloud API. إِنْتَ سيتم تعديل العيّنة المرتبطة لطلب Search Console API وطباعة النتائج في صفحة ويب.

اتبع تعليمات الإعداد في صفحة نموذج OAuth المرتبطة أعلاه، وانسخ نموذج الرمز البرمجي، ثم عدِّل الرمز كما هو موضّح أدناه. على وجه التحديد، اتبع تعليمات الإعداد لبيئة الترميز الخاصة بك وإعداد (أو إعادة استخدام) مشروع التي يمكنها الوصول إلى Search Console API في Google Cloud Console وإنشاء بيانات الاعتماد لتطبيق ويب.

ستستخدم مثال "إكمال الرمز" ل Python، باعتبارها رمز المصدر لهذا النموذج.

يُرجى الاطّلاع على التعديلات أدناه لمعرفة التغييرات التي تحتاج إلى إجرائها على على التعليمات

إذا كنت بحاجة إلى الوصول إلى برنامج Python API من Google من خلال محرّك تطبيقات Google ستحتاج إلى استخدام حساب خدمة لإدارة أذوناتك.

التعديلات

عند اتّباع التعليمات الواردة في صفحة نموذج Oauth2 المرتبطة، يمكنك إجراء التغييرات التالية:

  1. تفعيل Google Search Console API بدلاً من Drive API
  2. انسخ نموذج الطلب في نهاية مستند OAUth المرتبط أعلاه، واستبدال هذا

    SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly']
    API_SERVICE_NAME = 'drive'
    API_VERSION = 'v2'
    
    إليك ما يلي:
    SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
    API_SERVICE_NAME = 'searchconsole'
    API_VERSION = 'v1'
    

  3. استبدال نص لغة Python test_api_request() بالتعليمة البرمجية التالية:

    @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. أثناء إجراء الاختبارات، اضطررنا إلى تعيين OAUTHLIB_INSECURE_TRANSPORT يدويًا إلى 1 في بيئة باش: export OAUTHLIB_INSECURE_TRANSPORT=1. إذا ظهرت لك أخطاء بشأن HTTPS المطلوب لتشغيل نموذج التطبيق، حاوِل ضبط ذلك. المتغير.