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