यह सैंपल वेब ऐप्लिकेशन, उन साइटों की सूची प्रिंट करता है जिन्हें ऐक्सेस किया जा सकता है. साथ ही, यह साइटमैप, इनमें से हर साइट के लिए.
ज़रूरी शर्तें
इस प्रोग्राम को चलाने के लिए, आपको इन चीज़ों की ज़रूरत होगी:
- सैंपल ऐप्लिकेशन को अनुमति देने के लिए, इंटरनेट और वेब ब्राउज़र का ऐक्सेस.
- Google खाता, जिससे Google Search Console में कम से कम एक वेबसाइट की पुष्टि की जा चुकी हो.
- Python 3 और फ़्लास्क वेब ऐप्लिकेशन फ़्रेमवर्क.
निर्देश
इस सैंपल के लिए, आपको वेब सर्वर ऐप्लिकेशन सैंपल के लिए OAuth 2.0 को अपनाना होगा ऐप्लिकेशन है. यह सैंपल Python ऐप्लिकेशन, वेब-आधारित ऐप्लिकेशन को चलाने के लिए, flask वेब ऐप्लिकेशन फ़्रेमवर्क का इस्तेमाल करता है. यह ऐप्लिकेशन, OAuth पासकोड मैनेज करता है और Google Cloud API को कॉल करता है. आपने लोगों तक पहुंचाया मुफ़्त में Search Console API को कॉल करने के लिए, लिंक किए गए सैंपल को ऑप्टिमाइज़ करेगा. साथ ही, वेब पेज में नतीजे दिखाता है.
ऊपर लिंक किए गए OAuth नमूना पेज पर सेटअप निर्देशों का पालन करें और सैंपल कोड खोजें, फिर नीचे दिखाए गए कोड में बदलाव करें. खास तौर पर, इन निर्देशों का पालन करें: कोडिंग एनवायरमेंट को सेटअप करने से जुड़े निर्देश, प्रोजेक्ट सेट अप करना (या दोबारा इस्तेमाल करना) जो Google Cloud Console में Search Console API को ऐक्सेस कर सकता है और क्रेडेंशियल जनरेट कर सकता है वेब ऐप्लिकेशन के लिए.
आप पूर्ण कोड उदाहरण का इस्तेमाल इसके लिए करेंगे इस सैंपल के सोर्स कोड के तौर पर, Python.
लिंक किए गए लिंक में क्या बदलाव करने हैं, यह जानने के लिए नीचे दिए गए बदलाव पढ़ें निर्देश.
अगर आपको Google App Engine से Google API Python क्लाइंट को ऐक्सेस करने की ज़रूरत है प्रोजेक्ट के लिए, आपको किसी सेवा खाते का इस्तेमाल करना होगा पर जाकर, अपनी अनुमतियों को मैनेज करें.
बदलाव
लिंक किए गए Oauth2 सैंपल पेज पर दिए गए निर्देशों का पालन करते समय, ये बदलाव हुए हैं:
- Drive API के बजाय, Google Search Console 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'
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
हमारी जांच में, हमें OAUTHLIB_INSECURE_TRANSPORT को मैन्युअल तरीके से सेट करना पड़ा बैश एनवायरमेंट में 1:
export OAUTHLIB_INSECURE_TRANSPORT=1
. अगर आपको सैंपल ऐप्लिकेशन को चलाने के लिए एचटीटीपीएस के बारे में गड़बड़ियां मिलती हैं, तो वैरिएबल.