التشغيل السريع: تشغيل تطبيق 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 المطلوب لتشغيل نموذج التطبيق، حاوِل ضبط ذلك. المتغير.