থ্রেড পরিচালনা

Gmail API একটি একক কথোপকথন বা থ্রেডে তাদের আসল বার্তা সহ ইমেল উত্তরগুলিকে গোষ্ঠীভুক্ত করতে Thread সংস্থানগুলি ব্যবহার করে৷ এটি আপনাকে একটি কথোপকথনের সমস্ত বার্তা পুনরুদ্ধার করতে দেয়, যাতে একটি বার্তার প্রসঙ্গ বা অনুসন্ধানের ফলাফলগুলিকে পরিমার্জন করা সহজ হয়৷

বার্তাগুলির মতো, থ্রেডগুলিতেও লেবেল প্রয়োগ করা থাকতে পারে৷ যাইহোক, বার্তাগুলির বিপরীতে, থ্রেড তৈরি করা যায় না, শুধুমাত্র মুছে ফেলা হয়। বার্তাগুলি অবশ্য একটি থ্রেডে ঢোকানো যেতে পারে।

বিষয়বস্তু

থ্রেড পুনরুদ্ধার করা হচ্ছে

থ্রেডগুলি ক্রমানুসারে কথোপকথনে বার্তাগুলি পুনরুদ্ধার করার একটি সহজ উপায় প্রদান করে। থ্রেডের একটি সেট তালিকাবদ্ধ করে আপনি কথোপকথনের মাধ্যমে বার্তাগুলিকে গ্রুপ করতে এবং অতিরিক্ত প্রসঙ্গ প্রদান করতে পারেন। আপনি threads.list পদ্ধতি ব্যবহার করে থ্রেডের একটি তালিকা পুনরুদ্ধার করতে পারেন, অথবা threads.get দিয়ে একটি নির্দিষ্ট থ্রেড পুনরুদ্ধার করতে পারেন। আপনি Message রিসোর্সের মতো একই ক্যোয়ারী প্যারামিটার ব্যবহার করে থ্রেড ফিল্টার করতে পারেন। কোনো থ্রেডের কোনো বার্তা যদি প্রশ্নের সাথে মেলে, তাহলে সেই থ্রেডটি ফলাফলে ফেরত দেওয়া হয়।

নীচের কোড নমুনাটি দেখায় যে কীভাবে একটি নমুনায় উভয় পদ্ধতি ব্যবহার করতে হয় যা আপনার ইনবক্সে সবচেয়ে চ্যাটি থ্রেডগুলি প্রদর্শন করে৷ threads.list পদ্ধতিটি সমস্ত থ্রেড আইডি নিয়ে আসে, তারপর threads.get প্রতিটি থ্রেডের সমস্ত বার্তা গ্রহণ করে। যাদের 3 বা তার বেশি উত্তর আছে তাদের জন্য, আমরা Subject লাইনটি বের করি এবং খালি না থাকা এবং থ্রেডে বার্তার সংখ্যা প্রদর্শন করি। আপনি সংশ্লিষ্ট DevByte ভিডিওতে বৈশিষ্ট্যযুক্ত এই কোড নমুনাটিও পাবেন।

পাইথন

gmail/snippet/thread/threads.py
import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


def show_chatty_threads():
  """Display threads with long conversations(>= 3 messages)
  Return: None

  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """
  creds, _ = google.auth.default()

  try:
    # create gmail api client
    service = build("gmail", "v1", credentials=creds)

    # pylint: disable=maybe-no-member
    # pylint: disable:R1710
    threads = (
        service.users().threads().list(userId="me").execute().get("threads", [])
    )
    for thread in threads:
      tdata = (
          service.users().threads().get(userId="me", id=thread["id"]).execute()
      )
      nmsgs = len(tdata["messages"])

      # skip if <3 msgs in thread
      if nmsgs > 2:
        msg = tdata["messages"][0]["payload"]
        subject = ""
        for header in msg["headers"]:
          if header["name"] == "Subject":
            subject = header["value"]
            break
        if subject:  # skip if no Subject line
          print(f"- {subject}, {nmsgs}")
    return threads

  except HttpError as error:
    print(f"An error occurred: {error}")


if __name__ == "__main__":
  show_chatty_threads()

থ্রেডে খসড়া এবং বার্তা যোগ করা হচ্ছে

আপনি যদি অন্য ইমেলের প্রতিক্রিয়া বা কথোপকথনের অংশ হিসাবে বার্তা পাঠান বা স্থানান্তরিত করেন তবে আপনার অ্যাপ্লিকেশনটিকে সেই বার্তাটি সংশ্লিষ্ট থ্রেডে যুক্ত করা উচিত। এটি Gmail ব্যবহারকারীদের জন্য যারা কথোপকথনে অংশ নিচ্ছেন তাদের জন্য বার্তাটি প্রসঙ্গে রাখা সহজ করে তোলে।

একটি খসড়া বার্তা তৈরি করা , আপডেট করা বা পাঠানোর অংশ হিসাবে একটি থ্রেডে একটি খসড়া যোগ করা যেতে পারে। আপনি একটি বার্তা সন্নিবেশ বা পাঠানোর অংশ হিসাবে একটি থ্রেডে একটি বার্তা যোগ করতে পারেন।

একটি থ্রেডের অংশ হতে, একটি বার্তা বা খসড়া অবশ্যই নিম্নলিখিত মানদণ্ড পূরণ করতে হবে:

  1. অনুরোধ করা threadId অবশ্যই Message বা Draft.Message উল্লেখ করা উচিত। আপনার অনুরোধের সাথে আপনি যে বার্তাটি সরবরাহ করেন।
  2. References এবং In-Reply-To শিরোনাম অবশ্যই RFC 2822 মান মেনে সেট করতে হবে।
  3. Subject শিরোনাম অবশ্যই মিলবে।

একটি খসড়া তৈরি করা বা একটি বার্তার উদাহরণ পাঠানোর দিকে নজর দিন৷ উভয় ক্ষেত্রেই, আপনি একটি বার্তার মেটাডেটা, message অবজেক্টে একটি থ্রেড আইডির সাথে যুক্ত একটি threadId কী যোগ করবেন।