מדריך למתחילים: הרצת אפליקציית Search Console ב-Python

אפליקציית האינטרנט לדוגמה מדפיסה את רשימת האתרים שיש לכם גישה אליהם, ואת קובצי ה-Sitemap של כל אחד מהאתרים האלה, אם יש כאלה.

דרישות

כדי להפעיל את התוכנית, צריך:

  • גישה לאינטרנט ולדפדפן אינטרנט, כדי לתת הרשאה לאפליקציה לדוגמה.
  • חשבון Google שיש לו לפחות אתר אחד מאומת ב-Google Search Console.
  • Python 3 ו-framework של אפליקציית האינטרנט flask.

הוראות

בדוגמה הזו, תתאים את האפליקציה לדוגמה של OAuth 2.0 לאפליקציות שרת אינטרנט. אפליקציית ה-python לדוגמה הזו משתמשת ב-framework של אפליקציית האינטרנט של בקבוקונים כדי להריץ אפליקציה מבוססת-אינטרנט שמנהלת מפתחות OAuth וקוראת ל-Google Cloud API. תוכלו להתאים את דוגמת הקישור כדי לקרוא ל-Search Console API ולהדפיס את התוצאות בדף אינטרנט.

פועלים לפי הוראות ההגדרה בדף לדוגמה של OAuth שמקושר למעלה, מעתיקים את הקוד לדוגמה ומשנים את הקוד כפי שמוצג בהמשך. באופן ספציפי, פועלים לפי ההוראות להגדרה של סביבת התכנות, להגדרה (או לשימוש חוזר) בפרויקט שיכול לגשת ל-Search Console API במסוף Google Cloud וליצירת פרטי כניסה לאפליקציית אינטרנט.

בדוגמה הזו נשתמש בדוגמה של קוד מלא ב-Python.

בקטע שינויים שבהמשך מוסבר אילו שינויים צריך לבצע בהוראות שבקישור.

אם אתם צריכים לגשת ללקוח Google API Python מפרויקט Google App Engine, עליכם להשתמש בחשבון שירות כדי לנהל את ההרשאות.

שינויים

כשפועלים לפי ההוראות בדף לדוגמה של OAuth2 המקושר, מבצעים את השינויים הבאים:

  1. הפעילו את Google Search Console API במקום Drive API.
  2. מעתיקים את האפליקציה לדוגמה בסוף מסמך ה-OAU שמקושר למעלה, ומחליפים

    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 בסביבת Bash: export OAUTHLIB_INSECURE_TRANSPORT=1. אם מופיעות שגיאות לגבי HTTPS שנדרשות כדי להריץ את האפליקציה לדוגמה, נסו להגדיר את המשתנה הזה.