In dieser Anleitung wird beschrieben, wie Sie mit der Google Chat API den Verfügbarkeitsstatus und den benutzerdefinierten Status eines Nutzers verwalten.
Wenn Ihre App die Verfügbarkeit eines Chat-Nutzers lesen und aktualisieren soll, muss sie sich mit der Nutzerauthentifizierung authentifizieren. Nur auf die Verfügbarkeit des authentifizierten Nutzers kann zugegriffen oder diese geändert werden.
Vorbereitung
Node.js
- Ein Google Workspace-Konto für Unternehmen oder Enterprise mit Zugriff auf Google Chat.
- Richten Sie Ihre Umgebung ein:
- Google Cloud-Projekt erstellen.
- OAuth-Zustimmungsbildschirm konfigurieren.
- Aktivieren und konfigurieren Sie die Google Chat API mit einem Namen, Symbol und einer Beschreibung für Ihre Chat-App.
- Installieren Sie die Cloud-Clientbibliothek für Node.js.
-
Erstellen Sie OAuth-Client-ID-Anmeldedaten für eine Desktopanwendung. Wenn Sie das Beispiel in dieser
Anleitung ausführen möchten, speichern Sie die Anmeldedaten als JSON-Datei mit dem Namen
credentials.jsonin Ihrem lokalen Verzeichnis.
- Wählen Sie einen Autorisierungsbereich aus, der die Nutzerauthentifizierung unterstützt.
Python
- Ein Google Workspace-Konto für Unternehmen oder Enterprise mit Zugriff auf Google Chat.
- Richten Sie Ihre Umgebung ein:
- Google Cloud-Projekt erstellen.
- OAuth-Zustimmungsbildschirm konfigurieren.
- Aktivieren und konfigurieren Sie die Google Chat API mit einem Namen, Symbol und einer Beschreibung für Ihre Chat-App.
- Installieren Sie die Cloud-Clientbibliothek für Python.
-
Erstellen Sie OAuth-Client-ID-Anmeldedaten für eine Desktopanwendung. Wenn Sie das Beispiel in dieser
Anleitung ausführen möchten, speichern Sie die Anmeldedaten als JSON-Datei mit dem Namen
credentials.jsonin Ihrem lokalen Verzeichnis.
- Wählen Sie einen Autorisierungsbereich aus, der die Nutzerauthentifizierung unterstützt.
Java
- Ein Google Workspace-Konto für Unternehmen oder Enterprise mit Zugriff auf Google Chat.
- Richten Sie Ihre Umgebung ein:
- Google Cloud-Projekt erstellen.
- OAuth-Zustimmungsbildschirm konfigurieren.
- Aktivieren und konfigurieren Sie die Google Chat API mit einem Namen, Symbol und einer Beschreibung für Ihre Chat-App.
- Installieren Sie die Cloud-Clientbibliothek für Java.
-
Erstellen Sie OAuth-Client-ID-Anmeldedaten für eine Desktopanwendung. Wenn Sie das Beispiel in dieser
Anleitung ausführen möchten, speichern Sie die Anmeldedaten als JSON-Datei mit dem Namen
credentials.jsonin Ihrem lokalen Verzeichnis.
- Wählen Sie einen Autorisierungsbereich aus, der die Nutzerauthentifizierung unterstützt.
Apps Script
- Ein Google Workspace-Konto für Unternehmen oder Enterprise mit Zugriff auf Google Chat.
- Richten Sie Ihre Umgebung ein:
- Google Cloud-Projekt erstellen.
- OAuth-Zustimmungsbildschirm konfigurieren.
- Aktivieren und konfigurieren Sie die Google Chat API mit einem Namen, Symbol und einer Beschreibung für Ihre Chat-App.
- Erstellen Sie ein eigenständiges Apps Script-Projekt, und aktivieren Sie den erweiterten Chat-Dienst.
- Wählen Sie einen Autorisierungsbereich aus, der die Nutzerauthentifizierung unterstützt.
Verfügbarkeit eines Nutzers abrufen
Wenn Sie die Verfügbarkeit eines Google Chat-Nutzers abrufen möchten, geben Sie in Ihrer Anfrage Folgendes an:
- Geben Sie den
chat.users.availability.readonlyoderchat.users.availabilityAutorisierungsbereich an. - Rufen Sie die
GetAvailabilityMethode auf. - Übergeben Sie den
nameder abzurufenden Verfügbarkeitsressource. Der Name muss im Formatusers/{user}/availabilityangegeben werden. Die E-Mail-Adresse des Nutzers oder der Aliasmekann verwendet werden, um auf den Aufrufer zu verweisen. Beispiel:users/me/availability.
So rufen Sie die Verfügbarkeit eines Nutzers ab:
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);
}
}
Die Chat API gibt eine Instanz von
Availability
zurück, in der der Präsenzstatus und der benutzerdefinierte Status des Nutzers detailliert beschrieben werden.
Benutzerdefinierten Status aktualisieren
Wenn Sie den benutzerdefinierten Status eines Nutzers aktualisieren möchten, geben Sie in Ihrer Anfrage Folgendes an:
- Geben Sie den Autorisierungsbereich
chat.users.availabilityan. - Rufen Sie die
UpdateAvailabilityMethode auf. - Übergeben Sie die Ressource
Availabilityund geben Sie die neuencustomStatus-Details an. - Legen Sie für den Parameter
update_maskdas Feldcustom_statusfest.
So aktualisieren Sie den benutzerdefinierten Status eines Nutzers:
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);
}
}
Die Chat API aktualisiert und gibt eine Instanz von
Availability
mit dem neuen benutzerdefinierten Status zurück.
Wenn Sie den benutzerdefinierten Status eines Nutzers löschen möchten, aktualisieren Sie die Verfügbarkeit und lassen Sie die customStatus-Details weg.
Präsenzstatus aktualisieren
Je nach Zielpräsenzstatus können Sie die Verfügbarkeit eines Nutzers aktualisieren, indem Sie eine der folgenden benutzerdefinierten Methoden aufrufen:
- Aktiv: Rufen Sie die
MarkAsActiveMethode auf, um den Präsenzstatus auf „Aktiv“ zu setzen. Optional können Ablaufwerte (ttloderexpireTime) angegeben werden. - Abwesend: Rufen Sie die
MarkAsAwayMethode auf, um den Präsenzstatus auf „Abwesend“ zu setzen. - Bitte nicht stören: Rufen Sie die
MarkAsDoNotDisturbMethode auf, um Benachrichtigungen stummzuschalten.
Weitere Informationen, einschließlich Feldbeschreibungen und Abfragevorlagen, finden Sie im Referenzhandbuch der jeweiligen Methode.
Verfügbarkeitsänderungen aus einem Ereignis erkennen
Ihre Chat-App kann google.workspace.chat.availability.v1.updated-Ereignisse abonnieren, um Benachrichtigungen zu erhalten, wenn sich die Verfügbarkeit eines Nutzers ändert. Wenn eine Verfügbarkeitsaktualisierung erfolgt, erhält die App ein Ereignis mit einer Nutzlast, die die Ressource Availability enthält.
Weitere Informationen
- Google Chat Nutzer identifizieren und angeben.
- Google Chat-Ereignisse abonnieren.