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

במדריך הזה מוסבר איך להשתמש 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.