עדכון מצב הקריאה למרחב המשותף של המשתמש

במדריך הזה נסביר איך להשתמש ב-method‏ update() במשאב SpaceReadState של Google Chat API כדי לסמן מרחבים משותפים כקריאים או כלא קריאים.

משאב SpaceReadState הוא משאב יחיד שמייצג פרטים על ההודעה האחרונה שקורא משתמש מסוים במרחב משותף ב-Google Chat.

דרישות מוקדמות

Node.js

עדכון מצב הקריאה של המרחב המשותף אצל המשתמש המתקשר

כדי לעדכן את סטטוס הקריאה של משתמש במרחב משותף, צריך לכלול בבקשה את הפרטים הבאים:

  • מציינים את היקף ההרשאה chat.users.readstate.
  • קוראים ל-method‏ UpdateSpaceReadState().
  • מעבירים את updateMask עם הערך lastReadTime.
  • מעבירים את spaceReadState כמכונה של SpaceReadState באמצעות הקוד הבא:
    • השדה name מוגדר למצב הקריאה של המרחב המשותף שרוצים לעדכן, שכולל מזהה משתמש או כינוי ומזהה מרחב משותף. עדכון סטטוס הקריאה של המרחב משמש רק לעדכון סטטוס הקריאה של המשתמש הקורא. אפשר לציין את הסטטוס באמצעות אחת מהאפשרויות הבאות:
      • הכינוי me. לדוגמה, users/me/spaces/SPACE/spaceReadState.
      • כתובת האימייל ב-Workspace של המשתמש מבצע הקריאה. לדוגמה, users/user@example.com/spaces/SPACE/spaceReadState.
      • מזהה המשתמש של המשתמש שמתקשר. לדוגמה, users/USER/spaces/SPACE/spaceReadState.
    • השדה lastReadTime מוגדר לערך המעודכן של המועד שבו השתנה סטטוס הקריאה של המשתמש במרחב המשותף. בדרך כלל היא תואמת לחותמת הזמן של ההודעה האחרונה שקראתם, או לחותמת זמן שציינתם כדי לסמן את מיקום הקריאה האחרון במרחב המשותף. אם הערך של lastReadTime נמוך מהשעה שבה נוצרה ההודעה האחרונה, המרחב המשותף יופיע כ'לא נקרא' בממשק המשתמש. כדי לסמן את המרחב המשותף כנקרא, מגדירים את lastReadTime לערך מאוחר יותר (גדול יותר) ממועד היצירה של ההודעה האחרונה. הערך של lastReadTime יאולץ להתאים לשעת היצירה האחרונה של ההודעה. שימו לב שמצב הקריאה של המרחב המשותף משפיע רק על מצב הקריאה של ההודעות שמוצגות בשיחה ברמה העליונה במרחב. התשובות בשרשורים לא מושפעות מחותמת הזמן הזו, אלא מסתמכות על מצב הקריאה של השרשור.

בדוגמה הבאה מתבצע עדכון של מצב הקריאה של המשתמש המתקשר במרחב המשותף:

Node.js

chat/client-libraries/cloud/update-space-read-state-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.users.readstate'];

// This sample shows how to update a space read state for the calling user
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const timestamp = new Date('2000-01-01').getTime();
  const request = {
    spaceReadState: {
      // Replace SPACE_NAME here
      name: 'users/me/spaces/SPACE_NAME/spaceReadState',
      lastReadTime: {
        seconds: Math.floor(timestamp / 1000),
        nanos: (timestamp % 1000) * 1000000
      }
    },
    updateMask: {
      // The field paths to update.
      paths: ['last_read_time']
    }
  };

  // Make the request
  const response = await chatClient.updateSpaceReadState(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

כדי להריץ את הדוגמה הזו, צריך להחליף את SPACE_NAME במזהה של name של המרחב המשותף. אפשר לקבל את המזהה על ידי קריאה ל-method‏ ListSpaces() או מכתובת ה-URL של המרחב המשותף.

Google Chat API מעדכן את מצב הקריאה של המרחב המשותף שצוין ומחזיר מופע של SpaceReadState.