কুইকস্টার্ট: পাইথনে একটি সার্চ কনসোল অ্যাপ চালান

এই নমুনা ওয়েব অ্যাপটি সাইটের তালিকা প্রিন্ট করে যা আপনি অ্যাক্সেস করতে পারেন এবং সাইটম্যাপগুলি, যদি থাকে, সেই সাইটগুলির প্রতিটির জন্য।

প্রয়োজনীয়তা

এই প্রোগ্রামটি চালানোর জন্য, আপনার প্রয়োজন হবে:

  • নমুনা অ্যাপ অনুমোদন করার জন্য ইন্টারনেট এবং একটি ওয়েব ব্রাউজারে অ্যাক্সেস করুন।
  • Google Search Console-এ যাচাই করা অন্তত একটি ওয়েবসাইট সহ একটি Google অ্যাকাউন্ট।
  • পাইথন 3 এবং ফ্লাস্ক ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক।

নির্দেশনা

এই নমুনার জন্য, আপনি ওয়েব সার্ভার অ্যাপ্লিকেশন নমুনা অ্যাপ্লিকেশনের জন্য OAuth 2.0 মানিয়ে নেবেন। এই নমুনা পাইথন অ্যাপটি একটি ওয়েব-ভিত্তিক অ্যাপ্লিকেশন চালানোর জন্য ফ্লাস্ক ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক ব্যবহার করে যা OAuth কী পরিচালনা করে এবং একটি Google ক্লাউড API কল করে। আপনি সার্চ কনসোল এপিআই কল করার জন্য লিঙ্ক করা নমুনাকে মানিয়ে নেবেন এবং একটি ওয়েব পৃষ্ঠায় ফলাফল প্রিন্ট আউট করবেন।

উপরে লিঙ্ক করা OAuth নমুনা পৃষ্ঠায় সেটআপ নির্দেশাবলী অনুসরণ করুন, এবং নমুনা কোডটি অনুলিপি করুন, তারপর নীচে দেখানো কোডটি সংশোধন করুন৷ বিশেষত, আপনার কোডিং পরিবেশের জন্য সেটআপ নির্দেশাবলী অনুসরণ করুন, একটি প্রকল্প সেট আপ করুন (বা পুনঃব্যবহার করুন) যা Google ক্লাউড কনসোলে অনুসন্ধান কনসোল API অ্যাক্সেস করতে পারে এবং একটি ওয়েব অ্যাপ্লিকেশনের জন্য শংসাপত্র তৈরি করতে পারে৷

আপনি এই নমুনার সোর্স কোড হিসাবে পাইথনের জন্য সম্পূর্ণ কোড উদাহরণ ব্যবহার করবেন।

লিঙ্কযুক্ত নির্দেশাবলীতে আপনাকে কী পরিবর্তন করতে হবে তা দেখতে নীচের পরিবর্তনগুলি পড়ুন৷

আপনি যদি একটি Google অ্যাপ ইঞ্জিন প্রকল্প থেকে Google API পাইথন ক্লায়েন্ট অ্যাক্সেস করতে চান, তাহলে আপনার অনুমতিগুলি পরিচালনা করতে আপনাকে একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করতে হবে৷

পরিবর্তন

লিঙ্ক করা Oauth2 নমুনা পৃষ্ঠায় নির্দেশাবলী অনুসরণ করার সময়, নিম্নলিখিত পরিবর্তনগুলি করুন:

  1. ড্রাইভ API এর পরিবর্তে Google অনুসন্ধান কনসোল 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. পাইথন ভাষার 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 সম্পর্কে ত্রুটি পান, তাহলে সেই ভেরিয়েবল সেট করার চেষ্টা করুন।