Threads को मैनेज करना

Gmail API, ईमेल के जवाबों को उनके ओरिजनल मैसेज के साथ एक बातचीत या थ्रेड में ग्रुप करने के लिए, Thread संसाधनों का इस्तेमाल करता है. इससे आपको किसी बातचीत के सभी मैसेज क्रम से वापस पाने में मदद मिलती है. इससे किसी मैसेज के बारे में ज़्यादा जानकारी पाना या खोज के नतीजों को बेहतर बनाना आसान हो जाता है.

मैसेज की तरह, थ्रेड पर भी लेबल लगाए जा सकते हैं. हालांकि, मैसेज की तरह थ्रेड नहीं बनाई जा सकतीं. इन्हें सिर्फ़ मिटाया जा सकता है. हालांकि, मैसेज को थ्रेड में डाला जा सकता है.

सामग्री

थ्रेड वापस लाई जा रही हैं

थ्रेड की मदद से, किसी बातचीत में शामिल मैसेज को क्रम से आसानी से वापस पाया जा सकता है. थ्रेड की सूची बनाकर, बातचीत के हिसाब से मैसेज ग्रुप किए जा सकते हैं. साथ ही, ज़्यादा जानकारी दी जा सकती है. threads.list तरीके का इस्तेमाल करके, थ्रेड की सूची वापस पाई जा सकती है. इसके अलावा, threads.get का इस्तेमाल करके, किसी खास थ्रेड को वापस पाया जा सकता है. Message संसाधन के लिए इस्तेमाल किए गए क्वेरी पैरामीटर का इस्तेमाल करके, थ्रेड फ़िल्टर भी किए जा सकते हैं. अगर किसी थ्रेड में मौजूद कोई मैसेज, क्वेरी से मैच करता है, तो उस थ्रेड को नतीजे में दिखाया जाता है.

नीचे दिए गए कोड के उदाहरण में, दोनों तरीकों को इस्तेमाल करने का तरीका बताया गया है. इस उदाहरण में, आपके इनबॉक्स में सबसे ज़्यादा बातचीत वाले थ्रेड दिखाए गए हैं. threads.list तरीके से, सभी थ्रेड आईडी फ़ेच किए जाते हैं. इसके बाद, threads.get हर थ्रेड में मौजूद सभी मैसेज को फ़ेच करता है. जिन मैसेज के तीन या इससे ज़्यादा जवाब होते हैं उनके लिए, हम Subject लाइन को निकालते हैं. इसके बाद, हम उन लाइनों को दिखाते हैं जिनमें कुछ लिखा होता है. साथ ही, हम थ्रेड में मौजूद मैसेज की संख्या भी दिखाते हैं. आपको यह कोड सैंपल, DevByte वीडियो में भी दिखेगा.

Python

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 हेडर मेल खाने चाहिए.

ड्राफ़्ट बनाने या मैसेज भेजने के उदाहरण देखें. दोनों ही मामलों में, आपको मैसेज के मेटाडेटा में थ्रेड आईडी के साथ threadId कुंजी जोड़नी होगी. इसके लिए, message ऑब्जेक्ट का इस्तेमाल करें.