این نمونه برنامه وب، فهرست سایت هایی را که می توانید به آنها دسترسی داشته باشید، و نقشه های سایت، در صورت وجود، برای هر یک از آن سایت ها را چاپ می کند.
الزامات
برای اجرای این برنامه به موارد زیر نیاز دارید:
- دسترسی به اینترنت و یک مرورگر وب، به منظور مجوز برنامه نمونه.
- یک حساب Google با حداقل یک وب سایت تأیید شده در کنسول جستجوی Google.
- پایتون 3 و چارچوب برنامه وب فلاسک .
دستورالعمل ها
برای این نمونه، OAuth 2.0 را برای نمونه برنامه کاربردی وب سرور تطبیق خواهید داد. این نمونه برنامه پایتون از چارچوب برنامه وب flask برای اجرای یک برنامه مبتنی بر وب استفاده می کند که کلیدهای OAuth را مدیریت می کند و Google Cloud API را فراخوانی می کند. شما نمونه پیوند داده شده را برای فراخوانی API کنسول جستجو و چاپ نتایج در یک صفحه وب تطبیق خواهید داد.
دستورالعملهای راهاندازی را در صفحه نمونه OAuth پیوند داده شده در بالا دنبال کنید و کد نمونه را کپی کنید، سپس کد را مطابق شکل زیر تغییر دهید. به طور خاص، دستورالعملهای راهاندازی را برای محیط کدنویسی خود دنبال کنید، پروژهای را راهاندازی (یا استفاده مجدد) کنید که میتواند به API کنسول جستجو در کنسول Google Cloud دسترسی داشته باشد، و اعتبارنامهای برای یک برنامه وب ایجاد کند.
شما از نمونه کد کامل برای پایتون به عنوان کد منبع برای این نمونه استفاده خواهید کرد.
تغییرات زیر را بخوانید تا ببینید چه تغییراتی باید در دستورالعملهای پیوند داده شده ایجاد کنید.
اگر نیاز به دسترسی به Google API Python Client از پروژه Google App Engine دارید، باید از یک حساب سرویس برای مدیریت مجوزهای خود استفاده کنید.
اصلاحات
هنگام دنبال کردن دستورالعمل های صفحه نمونه Oauth2 پیوند شده، تغییرات زیر را اعمال کنید:
- Google Search Console API را به جای Drive API فعال کنید.
برنامه نمونه را در انتهای سند 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'
بدنه تابع
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
در آزمایش خود، باید به صورت دستی OAUTHLIB_INSECURE_TRANSPORT را روی 1 در محیط Bash تنظیم کنیم:
export OAUTHLIB_INSECURE_TRANSPORT=1
. اگر خطاهایی در مورد HTTPS مورد نیاز برای اجرای برنامه نمونه دریافت کردید، آن متغیر را تنظیم کنید.