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

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

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

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

Node.js

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

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

  • מציינים את chat.users.readstate היקף ההרשאה.
  • מבצעים קריאה ל-method‏ UpdateSpaceReadState().
  • מעבירים את הערך lastReadTime עם הפרמטר updateMask.
  • מעבירים את 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 של המרחב. אפשר לקבל את המזהה על ידי הפעלת השיטה ListSpaces() או מכתובת ה-URL של המרחב.

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