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

এই ডকুমেন্টে Gmail API ব্যবহার করে থ্রেড বার্তাগুলি কীভাবে পুনরুদ্ধার করা যায় এবং থ্রেডে বার্তাগুলি কীভাবে যুক্ত করা যায় তা ব্যাখ্যা করা হয়েছে।

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

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

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

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

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

পাইথন

জিমেইল/স্নিপেট/থ্রেড/থ্রেডস.পি
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()

আপনি messages রিসোর্সের জন্য ব্যবহৃত একই কোয়েরি প্যারামিটার ব্যবহার করে থ্রেড ফিল্টার করতে পারেন। যদি কোনও থ্রেডে থাকা কোনও বার্তা কোয়েরির সাথে মিলে যায়, তাহলে ফলাফলে থ্রেডটি ফেরত পাঠানো হবে।

থ্রেডে খসড়া এবং বার্তা যোগ করুন

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

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

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

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

  1. অনুরোধকৃত threadId আপনার অনুরোধের সাথে সরবরাহ করা drafts.message বা messages রিসোর্সের অংশ হিসেবে উল্লেখ করতে হবে।

  2. References এবং In-Reply-To হেডারগুলি অবশ্যই RFC 2822 স্ট্যান্ডার্ডের সাথে সঙ্গতিপূর্ণভাবে সেট করা উচিত।

  3. Subject শিরোনামগুলি অবশ্যই মিলতে হবে।

threadId কীভাবে ব্যবহার করবেন তার কোড নমুনার জন্য, Create Drafts অথবা Send messages দেখুন। উভয় ক্ষেত্রেই, আপনার অনুরোধের messages রিসোর্সের মধ্যে লক্ষ্য threadId অন্তর্ভুক্ত করতে হবে।