পাইথন কুইকস্টার্ট

একটি পাইথন কমান্ড-লাইন অ্যাপ্লিকেশন তৈরি করুন যা গুগল ক্যালেন্ডার এপিআই-তে অনুরোধ পাঠাতে পারে।

কুইকস্টার্টস ব্যাখ্যা করে কিভাবে একটি অ্যাপ সেট আপ এবং রান করতে হয় যা একটি গুগল ওয়ার্কস্পেস এপিআই কল করে। এই কুইকস্টার্টটি একটি সরলীকৃত অথেনটিকেশন পদ্ধতি ব্যবহার করে যা একটি টেস্টিং এনভায়রনমেন্টের জন্য উপযুক্ত। একটি প্রোডাকশন এনভায়রনমেন্টের জন্য, আমরা আপনার অ্যাপের জন্য উপযুক্ত অ্যাক্সেস ক্রেডেনশিয়াল বেছে নেওয়ার আগে অথেনটিকেশন এবং অথরাইজেশন সম্পর্কে জেনে নেওয়ার পরামর্শ দিই।

এই কুইকস্টার্টটি অথেনটিকেশন এবং অথরাইজেশন ফ্লো-এর কিছু খুঁটিনাটি বিষয় সামলানোর জন্য গুগল ওয়ার্কস্পেসের প্রস্তাবিত এপিআই ক্লায়েন্ট লাইব্রেরি ব্যবহার করে।

উদ্দেশ্য

  • আপনার পরিবেশ প্রস্তুত করুন।
  • ক্লায়েন্ট লাইব্রেরিটি ইনস্টল করুন।
  • নমুনাটি প্রস্তুত করুন।
  • নমুনাটি চালান।

পূর্বশর্ত

এই কুইকস্টার্টটি চালানোর জন্য আপনার নিম্নলিখিত পূর্বশর্তগুলো প্রয়োজন:

  • গুগল ক্যালেন্ডার সক্রিয় করা একটি গুগল অ্যাকাউন্ট।

আপনার পরিবেশ তৈরি করুন

এই কুইকস্টার্টটি সম্পন্ন করতে, আপনার পরিবেশ সেট আপ করুন।

এপিআই সক্রিয় করুন

গুগল এপিআই ব্যবহার করার আগে, আপনাকে একটি গুগল ক্লাউড প্রজেক্টে সেগুলি চালু করতে হবে। আপনি একটি একক গুগল ক্লাউড প্রজেক্টে এক বা একাধিক এপিআই চালু করতে পারেন।

আপনি যদি এই কুইকস্টার্টটি সম্পন্ন করতে একটি নতুন গুগল ক্লাউড প্রজেক্ট ব্যবহার করেন, তাহলে OAuth কনসেন্ট স্ক্রিনটি কনফিগার করুন। যদি আপনি আপনার ক্লাউড প্রজেক্টের জন্য এই ধাপটি ইতিমধ্যেই সম্পন্ন করে থাকেন, তাহলে পরবর্তী বিভাগে চলে যান।

  1. Google API কনসোলে, > Google Auth প্ল্যাটফর্ম > ব্র্যান্ডিং- এ যান।

    ব্র্যান্ডিং-এ যান

  2. আপনি যদি ইতিমধ্যেই Google Auth প্ল্যাটফর্মটি কনফিগার করে থাকেন, তাহলে আপনি Branding , Audience , এবং Data Access- এ নিম্নলিখিত OAuth Consent Screen সেটিংস কনফিগার করতে পারেন। যদি আপনি এমন কোনো বার্তা দেখতে পান যেখানে লেখা আছে ‘Google Auth প্ল্যাটফর্ম এখনও কনফিগার করা হয়নি’ , তাহলে Get Started-এ ক্লিক করুন:
    1. 'অ্যাপ ইনফরমেশন'- এর অধীনে 'অ্যাপ নেম' -এ অ্যাপটির জন্য একটি নাম লিখুন।
    2. ব্যবহারকারী সহায়তা ইমেল- এ, এমন একটি সহায়তা ইমেল ঠিকানা বেছে নিন যেখানে ব্যবহারকারীরা তাদের সম্মতি সম্পর্কে কোনো প্রশ্ন থাকলে আপনার সাথে যোগাযোগ করতে পারে।
    3. পরবর্তী ধাপে যান।
    4. Audience-এর অধীনে Internal নির্বাচন করুন।
    5. পরবর্তী ধাপে যান।
    6. যোগাযোগের তথ্যের অধীনে, একটি ইমেল ঠিকানা লিখুন যেখানে আপনার প্রকল্পের যেকোনো পরিবর্তন সম্পর্কে আপনাকে জানানো যাবে।
    7. পরবর্তী ধাপে যান।
    8. Finish-এর অধীনে, Google API Services ব্যবহারকারীর ডেটা নীতি পর্যালোচনা করুন এবং যদি আপনি সম্মত হন, তাহলে I agree to the Google API Services: User Data Policy নির্বাচন করুন।
    9. চালিয়ে যান-এ ক্লিক করুন।
    10. তৈরি করুন- এ ক্লিক করুন।
  3. আপাতত, আপনি স্কোপ যোগ করা এড়িয়ে যেতে পারেন। ভবিষ্যতে, যখন আপনি আপনার Google Workspace অর্গানাইজেশনের বাইরে ব্যবহারের জন্য কোনো অ্যাপ তৈরি করবেন, তখন আপনাকে অবশ্যই ইউজার টাইপ (User type) পরিবর্তন করে ‘এক্সটার্নাল’ ( External ) করতে হবে। এরপর আপনার অ্যাপের জন্য প্রয়োজনীয় অথরাইজেশন স্কোপগুলো যোগ করুন। আরও জানতে, সম্পূর্ণ ‘কনফিগার OAuth কনসেন্ট’ (Configure OAuth consent) গাইডটি দেখুন।

একটি ডেস্কটপ অ্যাপ্লিকেশনের জন্য ক্রেডেনশিয়াল অনুমোদন করুন

আপনার অ্যাপে ব্যবহারকারীদের প্রমাণীকরণ করতে এবং তাদের ডেটা অ্যাক্সেস করতে, আপনাকে এক বা একাধিক OAuth 2.0 ক্লায়েন্ট আইডি তৈরি করতে হবে। গুগলের OAuth সার্ভারের কাছে একটি একক অ্যাপকে শনাক্ত করতে ক্লায়েন্ট আইডি ব্যবহৃত হয়। যদি আপনার অ্যাপ একাধিক প্ল্যাটফর্মে চলে, তবে আপনাকে প্রতিটি প্ল্যাটফর্মের জন্য একটি পৃথক ক্লায়েন্ট আইডি তৈরি করতে হবে।
  1. Google API কনসোলে, > Google Auth প্ল্যাটফর্ম > ক্লায়েন্টস- এ যান।

    ক্লায়েন্টদের কাছে যান

  2. ক্লায়েন্ট তৈরি করুন -এ ক্লিক করুন।
  3. অ্যাপ্লিকেশন টাইপ > ডেস্কটপ অ্যাপ-এ ক্লিক করুন।
  4. Name ফিল্ডে ক্রেডেনশিয়ালটির জন্য একটি নাম টাইপ করুন। এই নামটি শুধুমাত্র Google API Console-এ দেখানো হয়।
  5. তৈরি করুন- এ ক্লিক করুন।

    নতুন তৈরি করা ক্রেডেনশিয়ালটি "OAuth 2.0 ক্লায়েন্ট আইডি" এর অধীনে দেখা যায়।

  6. ডাউনলোড করা JSON ফাইলটি credentials.json নামে সংরক্ষণ করুন এবং ফাইলটি আপনার ওয়ার্কিং ডিরেক্টরিতে নিয়ে যান।

গুগল ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন

  • পাইথনের জন্য গুগল ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন:

    python3 -m pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
    

নমুনাটি কনফিগার করুন

  1. আপনার ওয়ার্কিং ডিরেক্টরিতে quickstart.py নামে একটি ফাইল তৈরি করুন।
  2. quickstart.py ফাইলে নিম্নলিখিত কোডটি অন্তর্ভুক্ত করুন:

    ক্যালেন্ডার/কুইকস্টার্ট/কুইকস্টার্ট.py
    import datetime
    import os.path
    
    from google.auth.transport.requests import Request
    from google.oauth2.credentials import Credentials
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    from googleapiclient.errors import HttpError
    
    # If modifying these scopes, delete the file token.json.
    SCOPES = ["https://www.googleapis.com/auth/calendar.readonly"]
    
    
    def main():
      """Shows basic usage of the Google Calendar API.
      Prints the start and name of the next 10 events on the user's calendar.
      """
      creds = None
      # The file token.json stores the user's access and refresh tokens, and is
      # created automatically when the authorization flow completes for the first
      # time.
      if os.path.exists("token.json"):
        creds = Credentials.from_authorized_user_file("token.json", SCOPES)
      # If there are no (valid) credentials available, let the user log in.
      if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
          creds.refresh(Request())
        else:
          flow = InstalledAppFlow.from_client_secrets_file(
              "credentials.json", SCOPES
          )
          creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open("token.json", "w") as token:
          token.write(creds.to_json())
    
      try:
        service = build("calendar", "v3", credentials=creds)
    
        # Call the Calendar API
        now = datetime.datetime.now(tz=datetime.timezone.utc).isoformat()
        print("Getting the upcoming 10 events")
        events_result = (
            service.events()
            .list(
                calendarId="primary",
                timeMin=now,
                maxResults=10,
                singleEvents=True,
                orderBy="startTime",
            )
            .execute()
        )
        events = events_result.get("items", [])
    
        if not events:
          print("No upcoming events found.")
          return
    
        # Prints the start and name of the next 10 events
        for event in events:
          start = event["start"].get("dateTime", event["start"].get("date"))
          print(start, event["summary"])
    
      except HttpError as error:
        print(f"An error occurred: {error}")
    
    
    if __name__ == "__main__":
      main()

নমুনাটি চালান

  1. আপনার ওয়ার্কিং ডিরেক্টরিতে, স্যাম্পলটি বিল্ড ও রান করুন:

    python3 quickstart.py
    
  1. আপনি যখন প্রথমবার নমুনাটি চালান, তখন এটি আপনাকে অ্যাক্সেসের অনুমতি দিতে অনুরোধ করে:
    1. আপনি যদি আগে থেকেই আপনার গুগল অ্যাকাউন্টে সাইন ইন না করে থাকেন, তাহলে অনুরোধ করা হলে সাইন ইন করুন। আপনি যদি একাধিক অ্যাকাউন্টে সাইন ইন করে থাকেন, তাহলে অনুমোদনের জন্য ব্যবহার করার জন্য একটি অ্যাকাউন্ট বেছে নিন।
    2. গ্রহণ করুন- এ ক্লিক করুন।

    আপনার পাইথন অ্যাপ্লিকেশনটি চলে এবং গুগল ক্যালেন্ডার এপিআই-কে কল করে।

    অনুমোদনের তথ্য ফাইল সিস্টেমে সংরক্ষিত থাকে, তাই পরের বার আপনি নমুনা কোডটি চালালে আপনাকে অনুমোদনের জন্য অনুরোধ করা হবে না।

পরবর্তী পদক্ষেপ