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

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

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

সন্তুষ্ট

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

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

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

পাইথন

জিমেইল/স্নিপেট/থ্রেড/থ্রেডস.পি
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 কী যুক্ত করবেন।