चैट ऐप्लिकेशन के लिए, उपयोगकर्ता की उपलब्धता मैनेज करना

इस गाइड में, Google Chat API का इस्तेमाल करके, किसी उपयोगकर्ता की उपलब्धता का स्टेटस और कस्टम स्टेटस मैनेज करने का तरीका बताया गया है.

Chat के किसी उपयोगकर्ता की उपलब्धता की जानकारी पढ़ने और उसे अपडेट करने के लिए, आपके ऐप्लिकेशन को उपयोगकर्ता की पुष्टि के ज़रिए पुष्टि करनी होगी. सिर्फ़ पुष्टि किए गए उपयोगकर्ता की उपलब्धता को ऐक्सेस या उसमें बदलाव किया जा सकता है.

ज़रूरी शर्तें

Node.js

  • Google Workspace का Business या Enterprise खाता, जिसके पास Google Chat का ऐक्सेस हो.

Python

  • Google Workspace का Business या Enterprise खाता, जिसके पास Google Chat का ऐक्सेस हो.

Java

  • Google Workspace का Business या Enterprise खाता, जिसके पास Google Chat का ऐक्सेस हो.

Apps Script

  • Google Workspace का Business या Enterprise खाता, जिसके पास Google Chat का ऐक्सेस हो.

किसी उपयोगकर्ता की उपलब्धता की जानकारी पाना

Google Chat के किसी उपयोगकर्ता की उपलब्धता की जानकारी पढ़ने के लिए, अपने अनुरोध में यह जानकारी शामिल करें:

  • अनुमति पाने के लिए, chat.users.availability.readonly या chat.users.availability लिंक तय करें.
  • तरीके को कॉल करें.GetAvailability
  • उस उपलब्धता के संसाधन का name पास करें जिसे वापस पाना है. नाम का फ़ॉर्मैट users/{user}/availability होना चाहिए. कॉल करने वाले व्यक्ति की पहचान करने के लिए, उसके ईमेल पते या me एलियास का इस्तेमाल किया जा सकता है. उदाहरण के लिए, users/me/availability.

किसी उपयोगकर्ता की उपलब्धता की जानकारी पाने का तरीका यहां बताया गया है:

Node.js

const { ChatServiceClient } = require('@google-apps/chat').v1;

// Instantiates a client
const chatServiceClient = new ChatServiceClient();

async function getAvailability() {
  const request = {
    // The name of the availability resource to retrieve.
    // Format: users/{user}/availability
    // The 'me' alias can be used to refer to the calling user.
    name: 'users/me/availability',
  };

  try {
    const response = await chatServiceClient.getAvailability(request);
    console.log(response);
  } catch (err) {
    console.error('Error retrieving availability:', err);
  }
}

getAvailability();

Python

from google.apps import chat_v1 as google_chat

def get_availability():
    # Instantiates a client
    client = google_chat.ChatServiceClient()

    # Prepare request
    request = google_chat.GetAvailabilityRequest(
        # Format: users/{user}/availability
        # The 'me' alias refers to the calling user.
        name="users/me/availability",
    )

    # Call the API
    try:
        response = client.get_availability(request=request)
        print(response)
    except Exception as e:
        print(f"Error retrieving availability: {e}")

get_availability()

Java

import com.google.chat.v1.Availability;
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.GetAvailabilityRequest;

public class GetAvailability {
  public static void main(String[] args) throws Exception {
    // Instantiates a client
    try (ChatServiceClient chatServiceClient = ChatServiceClient.create()) {
      GetAvailabilityRequest request = GetAvailabilityRequest.newBuilder()
          // Format: users/{user}/availability
          // The 'me' alias refers to the calling user.
          .setName("users/me/availability")
          .build();

      Availability response = chatServiceClient.getAvailability(request);
      System.out.println(response);
    }
  }
}

Apps Script

/**
 * Retrieves the calling user's availability details.
 */
function getUserAvailability() {
  const name = 'users/me/availability';
  try {
    const availability = Chat.Users.Availability.get(name);
    console.log(availability);
  } catch (err) {
    console.error('Failed to get availability: ' + err.message);
  }
}

Chat API, Availability का एक इंस्टेंस दिखाता है. इसमें उपयोगकर्ता की मौजूदगी का स्टेटस और कस्टम स्टेटस की जानकारी होती है.

कस्टम स्टेटस को अपडेट करना

किसी उपयोगकर्ता का कस्टम स्टेटस अपडेट करने के लिए, अपने अनुरोध में यह जानकारी शामिल करें:

  • अनुमति पाने के लिए, chat.users.availability लिंक तय करें.
  • तरीके को कॉल करें.UpdateAvailability
  • Availability संसाधन पास करें. इसमें customStatus की नई जानकारी तय करें.
  • update_mask पैरामीटर सेट करें, ताकि उसमें custom_status फ़ील्ड शामिल हो.

किसी उपयोगकर्ता का कस्टम स्टेटस अपडेट करने का तरीका यहां बताया गया है:

Node.js

const { ChatServiceClient } = require('@google-apps/chat').v1;

// Instantiates a client
const chatServiceClient = new ChatServiceClient();

async function updateCustomStatus() {
  const request = {
    // The Availability resource to update.
    availability: {
      name: 'users/me/availability',
      customStatus: {
        text: 'In a meeting',
        emoji: {
          unicode: '📅'
        }
      }
    },
    // The fields to update. Must contain 'custom_status'.
    updateMask: {
      paths: ['custom_status']
    }
  };

  try {
    const response = await chatServiceClient.updateAvailability(request);
    console.log(response);
  } catch (err) {
    console.error('Error updating status:', err);
  }
}

updateCustomStatus();

Python

from google.apps import chat_v1 as google_chat
from google.protobuf import field_mask_pb2

def update_custom_status():
    # Instantiates a client
    client = google_chat.ChatServiceClient()

    # Define custom status and emoji
    custom_status = google_chat.CustomStatus(
        text="In a meeting",
        emoji=google_chat.Emoji(unicode="📅")
    )

    # Initialize availability object
    availability = google_chat.Availability(
        name="users/me/availability",
        custom_status=custom_status
    )

    # Specify update mask
    update_mask = field_mask_pb2.FieldMask(paths=["custom_status"])

    # Prepare request
    request = google_chat.UpdateAvailabilityRequest(
        availability=availability,
        update_mask=update_mask
    )

    # Call the API
    try:
        response = client.update_availability(request=request)
        print(response)
    except Exception as e:
        print(f"Error updating status: {e}")

update_custom_status()

Java

import com.google.chat.v1.Availability;
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CustomStatus;
import com.google.chat.v1.Emoji;
import com.google.chat.v1.UpdateAvailabilityRequest;
import com.google.protobuf.FieldMask;

public class UpdateCustomStatus {
  public static void main(String[] args) throws Exception {
    // Instantiates a client
    try (ChatServiceClient chatServiceClient = ChatServiceClient.create()) {
      CustomStatus customStatus = CustomStatus.newBuilder()
          .setText("In a meeting")
          .setEmoji(Emoji.newBuilder().setUnicode("📅"))
          .build();

      Availability availability = Availability.newBuilder()
          .setName("users/me/availability")
          .setCustomStatus(customStatus)
          .build();

      FieldMask updateMask = FieldMask.newBuilder()
          .addPaths("custom_status")
          .build();

      UpdateAvailabilityRequest request = UpdateAvailabilityRequest.newBuilder()
          .setAvailability(availability)
          .setUpdateMask(updateMask)
          .build();

      Availability response = chatServiceClient.updateAvailability(request);
      System.out.println(response);
    }
  }
}

Apps Script

/**
 * Updates the calling user's custom status message.
 */
function updateCustomStatus() {
  const name = 'users/me/availability';
  const availability = {
    customStatus: {
      text: 'In a meeting',
      emoji: {
        unicode: '📅'
      }
    }
  };
  const updateMask = 'custom_status';

  try {
    const response = Chat.Users.Availability.patch(availability, name, {
      updateMask: updateMask
    });
    console.log(response);
  } catch (err) {
    console.error('Failed to update status: ' + err.message);
  }
}

Chat API, नए कस्टम स्टेटस के साथ Availability का एक इंस्टेंस अपडेट करता है और उसे दिखाता है.

किसी उपयोगकर्ता का कस्टम स्टेटस हटाने के लिए, उपलब्धता को अपडेट करें और customStatus की जानकारी शामिल न करें.

मौजूदगी का स्टेटस अपडेट करना

मौजूदगी के टारगेट स्टेटस के हिसाब से, उपयोगकर्ता की उपलब्धता को अपडेट किया जा सकता है. इसके लिए, इनमें से किसी एक कस्टम तरीके को कॉल करें:

  • चालू है: मौजूदगी को 'चालू है' पर सेट करने के लिए, MarkAsActive तरीके को कॉल करें. समयसीमा खत्म होने की वैकल्पिक वैल्यू (ttl या expireTime) दी जा सकती हैं.
  • ऑनलाइन नहीं है: मौजूदगी को 'ऑनलाइन नहीं है' पर सेट करने के लिए, MarkAsAway तरीके को कॉल करें.
  • परेशान न करें: सूचनाएं म्यूट करने के लिए, MarkAsDoNotDisturb तरीके को कॉल करें.

फ़ील्ड की जानकारी और क्वेरी टेंप्लेट वगैरह के बारे में जानने के लिए, हर तरीके की रेफ़रंस गाइड देखें.

किसी इवेंट से, उपलब्धता में हुए बदलावों की पहचान करना

आपका Chat ऐप्लिकेशन, google.workspace.chat.availability.v1.updated इवेंट की सदस्यता ले सकता है. इससे, उपयोगकर्ता की उपलब्धता में बदलाव होने पर सूचनाएं मिलती हैं. उपलब्धता अपडेट होने पर, ऐप्लिकेशन को एक इवेंट मिलता है. इसके पेलोड में Availability संसाधन होता है.