עיצוב הודעות

בדף הזה מוסבר איך אפליקציות ל-Google Chat יכולות לעצב טקסט כדי לשלוח הודעות שמכילות:

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

איך מעצבים הודעת טקסט

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

בהודעות שנשלחות או מאוחזרות באמצעות Chat API, אפשר להשתמש בתחביר Markdown רגיל (MARKUP_SYNTAX_MARKDOWN) או בתחביר תגי עיצוב של Chat‏ (MARKUP_SYNTAX_CHAT). אפשר להגדיר תחביר תגי עיצוב כברירת מחדל ברמת האפליקציה במסוף Google Cloud (ראו הגדרת Google Chat API):

  • ‫Markdown: תחביר Markdown רגיל (MARKUP_SYNTAX_MARKDOWN), שמבוסס על המפרט של CommonMark עם תוספים נוספים. אפליקציות חדשות שנוצרות ב-Chat מוגדרות כברירת מחדל ל-Markdown.
  • Chat: תחביר תגי העיצוב של Chat ‏ (MARKUP_SYNTAX_CHAT). אפליקציות Chat קיימות מוגדרות כברירת מחדל ל-Chat כדי לשמור על תאימות לדורות קודמים.

אפשר גם לציין את markup_syntax בבקשות ספציפיות ל-Chat API כדי לשנות את ברירת המחדל ברמת האפליקציה. אם לא מציינים את markup_syntax בבקשת API, העיצוב נקבע לפי האופן שבו קוראים ל-Chat API:

  • אפליקציות Chat מוגדרות: משתמשות בתחביר של תגי עיצוב שנשמר בדף ההגדרות של Chat API.
  • פרויקטים ב-Cloud שלא הוגדרו: אם הפרויקט ב-Cloud שולח קריאה ל-Chat API בלי הגדרה שמורה של אפליקציית Chat, הבקשות מוגדרות כברירת מחדל ל-MARKUP_SYNTAX_MARKDOWN.
  • תגובות לפעולות לפיתוח האפליקציה (webhook) נכנסות: ברירת המחדל היא MARKUP_SYNTAX_CHAT. איך שולחים הודעות באמצעות תגובות לפעולה מאתר אחר (webhook) נכנסות

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

פורמט MARKUP_SYNTAX_CHAT MARKUP_SYNTAX_MARKDOWN תחביר לדוגמה הטקסט שמוצג ב-Google Chat
מודגש * **

*hello*

או:

**hello**

שלום
נטוי ‫_ (קו תחתון) *

_hello_

או:

*hello*

שלום
קו חוצה ~ ~~

~hello~

או:

~~hello~~

שלום
גופן ברוחב אחיד ` (גרש הפוך) ` (גרש הפוך) `hello` hello
בלוק ברוחב אחיד ` ` ` (שלושה סימני גרש הפוך) ` ` ` (שלושה סימני גרש הפוך) ```
Hello
World
```
Hello
World
רשימה עם תבליטים * או - (מקף) ואחריו רווח * או - (מקף) ואחריו רווח

* זה הפריט הראשון ברשימה.

* זה הפריט השני ברשימה.

  • זה הפריט הראשון ברשימה.
  • זה הפריט השני ברשימה.
רשימה מקוננת * או - (מקף) ואחריו רווח, ולפניו ארבעה רווחים לכל רמת קינון * או - (מקף) ואחריו רווח, ולפניו ארבעה רווחים לכל רמת קינון

* זהו הפריט ברשימה עם עומק הטמעה של רמה אחת.

    * This is the item with nested depth two in the list.

        * This is the item with nested depth three in the list.

  • זה הפריט ברשימה עם עומק הטמעה של רמה אחת.
    • זה הפריט ברמה השנייה של הרשימה.
      • זה הפריט ברשימה עם עומק הטמעה של שלוש רמות.
רשימה ממוספרת לא נתמך 1. (מספר ואחריו נקודה ורווח)

1. זה הפריט הראשון ברשימה.

2. זה הפריט השני ברשימה.

  1. זה הפריט הראשון ברשימה.
  2. זה הפריט השני ברשימה.
ציטוט בלוק של טקסט > (סימן גדול מ-) > (סימן גדול מ-) >שלום
סמל הפורמט של ציטוט בלוק שלום
Hyperlink <hyperlink|display text> [display text](hyperlink)

<https://example.com|Example website>

או:

[Example website](https://example.com)

אתר לדוגמה

מידע נוסף על הוספת היפר-קישורים

תיוג משתמש ‫<users/{user}> כאשר {user} הוא מזהה המשתמש.

<chat-user data-user="users/{user}">

או:

<chat-user data-email="{email}">

<users/123456789012345678901> או <users/all>

או:

<chat-user data-user="users/123456789012345678901">,

<chat-user data-user="users/all">, או

<chat-user data-email="email@example.com">

@Mahan S

למידע נוסף על תיוג משתמשים, ראו תיוג משתמשים בהודעת SMS.

אמוג'י בהתאמה אישית

<customEmojis/{uid}>

או:

<customEmojis/:{name}:>

<chat-emoji data-custom-emoji="customEmojis/{uid}">

או:

<chat-emoji data-emoji-name=":{name}:">

<customEmojis/abc-123-def>

או:

<customEmojis/:smiley-cat:>

או:

<chat-emoji data-custom-emoji="customEmojis/abc-123-def">

או:

<chat-emoji data-emoji-name=":smiley-cat:">

🐱 (אמוג'י מותאם אישית של חתול מחייך)
ציטוט ביבליוגרפי לא נתמך ‫<chat-citation data-id="{id}">{text}</chat-citation> כאשר {id} הוא מזהה הציטוט שמוגדר בהודעה elements. <chat-citation data-id="cite_1">cited text</chat-citation>

טקסט מצוטט

איך מוסיפים ציטוטים להודעת טקסט

לדוגמה, נניח שיש לכם את קובץ ה-JSON הבא:

    {
      "text": "Your pizza delivery *has arrived*!\nThank you for using _Cymbal Pizza!_"
    }

הודעת הטקסט המעוצבת הזו מוצגת כך במרחב משותף ב-Chat:

האפליקציה של פיצה סימבל שולחת הודעת טקסט שהמשלוח הגיע.

איך רואים את עיצוב הטקסט בהודעות

כשמשתמש שולח הודעה, גוף ההודעה בטקסט פשוט נמצא בשדה text. חלק מהעיצוב שמוחל על הודעת הטקסט באמצעות תחביר Markdown נמצא בשדה text. עיצוב נוסף נמצא בשדה formattedText לפלט בלבד, כולל:

  • תחביר Markdown נוסף לטקסט
  • אזכורים של משתמשים
  • היפר-קישורים בהתאמה אישית
  • סמלי אמוג'י בהתאמה אישית

לדוגמה, נניח שהמשתמש שולח את הטקסט הבא:

התקבלה הודעה ב-Chat עם המילה

אם ההודעה עוצבה באמצעות התפריט עיצוב בממשק המשתמש של Chat, השדה text מכיל רק את הטקסט, והשדה formattedText מכיל את תגי העיצוב, הטקסט וההיפר-קישור. בדוגמה הבאה מוצגת טיוטה של הודעת SMS עם מילה שמכילה היפר-קישור, פריטים ברשימה ומילה אחת מודגשת:

טיוטת הודעה עם המילה

ההודעה מתקבלת בפורמט הבא:

    {
      "text": "I can meet there at:\nNoon\n3 pm\n5 pm\nWhat time works for you?",
      "formattedText": "I can meet <http://example.com|there> at:\n* Noon\n* 3 pm\n* 5 pm\nWhat time works for *you*?",
    }

אם תכללו בטקסט של ההודעה כתובת URL פשוטה, כמו http://www.example.com/, היא תהפוך אוטומטית להיפר-קישור ב-Google Chat.

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

  • בהודעות API שמוגדרות עם Markdown, משתמשים בתחביר הקישור הרגיל של Markdown:

    תחביר לדוגמה הטקסט שמוצג ב-Google Chat
    [Example website](https://example.com)
  • בהודעות טקסט פשוט רגילות, משתמשים בתחביר של קו אנכי:

    תחביר לדוגמה הטקסט שמוצג ב-Google Chat
    <https://example.com|Example website>

    הקו האנכי וטקסט הקישור הם אופציונליים, כך ש-<https://example.com> ו-https://example.com שקולים.

איך משתמשים באמוג'י בהתאמה אישית בהודעת SMS

אפליקציות צ'אט יכולות לשלוח הודעות SMS עם אמוג'י בהתאמה אישית כדי להפוך את ההודעות לאישיות יותר. אפשר ליצור אמוג'י בהתאמה אישית ולהשתמש בהם רק בארגונים ב-Google Workspace, ורק אם האדמין הפעיל את האפשרות הזו בארגון. מידע נוסף מופיע במאמרים הסבר על אמוג'י בהתאמה אישית ב-Google Chat וניהול ההרשאות לאמוג'י בהתאמה אישית.

כדי ליצור הודעות עם אמוג'י בהתאמה אישית, האפליקציה צריכה להשתמש באימות משתמש. אי אפשר להשתמש באמוג'י בהתאמה אישית בהודעות שנוצרו באמצעות webhook או בהודעות שנוצרו באמצעות אימות של אפליקציה.

כדי להוסיף אמוג'י בהתאמה אישית לטקסט של הודעה, מציינים את name או את emoji_name של המשאב customEmoji:

{
    "text": "Hello <customEmojis/CUSTOM_EMOJI_ID>."
}

כדי להשתמש בדוגמה הזו, צריך להחליף את CUSTOM_EMOJI_ID במזהה של האמוג'י בהתאמה אישית. המזהה הזה מופיע בשדה name או בשדה emoji_name של המשאב customEmoji.

אם האפליקציה שולחת הודעות באמצעות תחביר Markdown, אתם יכולים לציין אמוג'י בהתאמה אישית בפורמט של תג HTML באמצעות המזהה של האמוג'י בהתאמה אישית:

{
  "text": "Hello <chat-emoji data-custom-emoji=\"customEmojis/CUSTOM_EMOJI_ID\">."
}

או לציין את השם של האמוג'י בהתאמה אישית:

{
  "text": "Hello <chat-emoji data-emoji-name=\"CUSTOM_EMOJI_NAME\">."
}

כדי להשתמש בדוגמאות האלה, מחליפים את CUSTOM_EMOJI_ID במזהה של האמוג'י בהתאמה אישית, ואת CUSTOM_EMOJI_NAME בשם הקוד המקוצר של האמוג'י בהתאמה אישית.

איך מתייגים משתמשים בהודעות טקסט

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

בהודעות שקטות אי אפשר לתייג משתמשים. אם תכללו תיוג בהודעה שקטה, תוחזר שגיאה.

תיוג משתמשים ספציפיים ב-@

כדי לתייג משתמש ספציפי, מוסיפים <users/{user}> להודעת הטקסט, כאשר {user} הוא המזהה של המשתמש. לדוגמה, נניח שבהודעת הטקסט הבאה, 123456789012345678901 מייצג את המזהה של המשתמש Mahan S.:‎

{
    "text": "A customer has reported an issue. Assigning ticket #942 to <users/123456789012345678901>."
}

אם האפליקציה שלכם שולחת הודעות באמצעות תחביר Markdown, השתמשו בפורמט תג ה-HTML chat-user כדי לציין את מזהה המשתמש:

{
  "text": "Assigning ticket #942 to <chat-user data-user=\"users/123456789012345678901\">."
}

או לציין כתובת אימייל:

{
  "text": "Assigning ticket #942 to <chat-user data-email=\"mahan@example.com\">."
}

הודעת ה-SMS מוצגת כך:

אפליקציית Chat מתייגת משתמש בהודעת SMS.

אפשר לציין את הערך של users/{user} בדרכים הבאות:

  • אם אפליקציית Google Chat מגיבה להודעה שנשלחה על ידי המשתמש, אתם יכולים להשתמש בשדה message.sender.name של אירוע האינטראקציה MESSAGE.
  • אם האפליקציה ל-Google Chat יוצרת הודעת טקסט אסינכרונית, אתם יכולים לציין את הערך של users/{user} בדרכים הבאות:

    • משתמשים בשדה name של המשאב User ב-Google Chat, למשל users/123456789012345678901.
    • משתמשים בכתובת האימייל של המשתמש ככתובת אימייל חלופית לערך {user}. לדוגמה, אם כתובת האימייל היא mahan@example.com, אפשר לציין את המשתמש בתור users/mahan@example.com. כדי להשתמש בכתובת אימייל חלופית, אפליקציית Google Chat צריכה לאמת את הזהות כמשתמש.
  • אם אתם משתמשים ב-People API, אתם יכולים להשתמש גם בשיטה people.get כדי לזהות את מזהה המשתמש.

תיוג כל המשתמשים ב-@

כדי ליצור הודעת טקסט שמתייגת את כל המשתתפים במרחב, מחליפים את {user} ב-all. בדוגמה הבאה ב-JSON, כל המשתמשים מתויגים בהודעה:

{
    "text": "Important message for <users/all>: Code freeze starts at midnight tonight!"
}

אם האפליקציה שולחת הודעות באמצעות תחביר Markdown, צריך לציין את התיוג באמצעות פורמט תג ה-HTML של chat-user:

{
  "text": "Important message for <chat-user data-user=\"users/all\">: Code freeze starts at midnight tonight!"
}

הוספת ציטוטים להודעת SMS

אפליקציות צ'אט יכולות לכלול ציטוטים בהודעות SMS כדי לספק למשתמשים מידע מפורט על המקור. יש שתי דרכים לספק מקורות:

  • ציטוטים מוטבעים: הוספת כרטיסים אינטראקטיביים שמופיעים כשמשתמשים מציבים את הסמן מעל חלקים ספציפיים בטקסט של ההודעה.
  • רשימת מקורות בכותרת התחתונה: רשימת מקורות שמוצגת בתחתית ההודעה כקישורים בכותרת התחתונה.

הציטוטים נתמכים רק כשהשדה markupSyntax של ההודעה מוגדר כ-MARKUP_SYNTAX_MARKDOWN. התכונה הזו נתמכת רק ביצירת הודעות אסינכרוניות באמצעות Chat API.

כדי להוסיף ציטוטים בגוף ההודעה:

  1. מציינים את המקורות ברשימה citations של ההודעה elements, ומקצים id ייחודי לכל אובייקט Citation.
  2. בטקסט של ההודעה, תוחמים את הטקסט שרוצים לצטט באמצעות תג ה-HTML‏ chat-citation בפורמט הבא: <chat-citation data-id="{id}">{text}</chat-citation>. חשוב לוודא שהערך של {id} תואם למזהה שהגדרתם ב-elements. המערכת מתעלמת מציטוטים ללא הפניה (ללא תג תואם).
{
  "text": "This is a <chat-citation data-id=\"cite_1\">cited</chat-citation> text.",
  "markupSyntax": "MARKUP_SYNTAX_MARKDOWN",
  "elements": {
    "citations": [
      {
        "id": "cite_1",
        "citedSources": [
          {
            "title": "Example Source",
            "uri": "https://example.com"
          }
        ]
      }
    ]
  }
}

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

{
  "text": "This is a message with a footer source.",
  "markupSyntax": "MARKUP_SYNTAX_MARKDOWN",
  "elements": {
    "citedSources": [
      {
        "title": "Example Source",
        "uri": "https://example.com"
      }
    ]
  }
}

עיצוב טקסט שמופיע בכרטיסים

בתוך כרטיסים, רוב שדות הטקסט תומכים בעיצוב טקסט בסיסי באמצעות קבוצת משנה קטנה של תגי HTML. העיצוב של הטקסט בהודעות עם כרטיסים שונה מהעיצוב של הטקסט בהודעות SMS, כי הודעות SMS מעוצבות באותו תחביר שבו משתמשי Chat משתמשים.


אתם יכולים להשתמש בכלי ליצירת כרטיסים כדי לעצב ולראות תצוגה מקדימה של ממשקי המשתמש וההודעות של אפליקציות ל-Chat:

פתיחת הכלי ליצירת כרטיסים

עיצוב טקסט של פסקה

בטבלה הבאה מפורטים התגים הנתמכים והמטרה שלהם:

פורמט דוגמה התוצאה המרונדרת
מודגש "This is <b>bold</b>." הטקסט הזה מודגש.
כתב נטוי "This is <i>italics</i>." זה טקסט נטוי.
קו תחתון "This is <u>underline</u>." זה קו תחתון.
קו חוצה "This is <s>strikethrough</s>." זה קו חוצה.
צבע גופן "This is <font color=\"#FF0000\">red font</font>." זה גופן אדום.
Hyperlink "This is a <a href=\"https://www.google.com\">hyperlink</a>." זה היפר-קישור.
שעה "This is a time format: <time>2023-02-16 15:00</time>." זהו פורמט של שעה: .
שורה חדשה "This is the first line. <br> This is a new line." זו השורה הראשונה.
זו שורה חדשה.

כדי להגדיר רשימות ובלוקים של קוד, משתמשים בתגים הבאים:

פורמט דוגמה התוצאה שעובדה
שורה חדשה "Line 1<br>Line 2" שורה 1
שורה 2
גופן ברוחב אחיד "This is an <code>inline code</code>." זה inline code.
בלוק ברוחב אחיד "<pre><code>This a code block.</code></pre>"
This is a code block.
רשימה עם תבליטים "<ul><li>List item 1</li><li>List item 2</li></ul>"
  • פריט 1 ברשימה
  • פריט 2 ברשימה
רשימה ממוינת "<ol><li>List item 1</li><li>List item 2</li></ol>"
  1. פריט 1 ברשימה
  2. פריט 2 ברשימה

Markdown

כשההגדרה תחביר Markdown מופעלת, אתם יכולים להשתמש בתחביר הבא:

פורמט דוגמה התוצאה המרונדרת
מודגש **שלום** או __שלום__ שלום
נטוי *שלום* או _שלום_ שלום
קו חוצה ~שלום~ שלום
גופן ברוחב אחיד `hello` hello
בלוק ברוחב אחיד ```
Hello
World
```
Hello
World
רשימה עם תבליטים

- זה הפריט הראשון ברשימה

- זה הפריט השני ברשימה

  • זה הפריט הראשון ברשימה
  • זה הפריט השני ברשימה

* This is the first item in the list

* This is the second item in the list

  • זה הפריט הראשון ברשימה
  • זה הפריט השני ברשימה
רשימה ממוינת

1. זה הפריט הראשון ברשימה

2. זה הפריט השני ברשימה

  1. זה הפריט הראשון ברשימה
  2. זה הפריט השני ברשימה
Hyperlink [אתר לדוגמה](https://example.com) אתר לדוגמה

הוספת סמלים לטקסט

כדי להציג סמלים לצד טקסט בכרטיס, אפשר להשתמש בווידג'טים DecoratedText ו-ButtonList.

בקטעים הבאים מוסבר איך להשתמש בסמלים מובנים, בסמלים של Google Material או בסמלים בהתאמה אישית בטקסט מעוצב או בלחצנים.

שימוש בסמלים מ-Chat

כדי להשתמש בסמלים המובנים שזמינים ב-Chat, צריך לציין אחד מהבאים:

בטבלה הבאה מפורטים הסמלים המובנים שאפשר להשתמש בהם בהודעות בכרטיסים:

AIRPLANE BOOKMARK
BUS CAR
שעון CONFIRMATION_NUMBER_ICON
תיאור DOLLAR
EMAIL EVENT_SEAT
FLIGHT_ARRIVAL FLIGHT_DEPARTURE
HOTEL HOTEL_ROOM_TYPE
הזמנה MAP_PIN
MEMBERSHIP MULTIPLE_PEOPLE
PERSON טלפון
RESTAURANT_ICON SHOPPING_CART
STAR STORE
TICKET TRAIN
VIDEO_CAMERA VIDEO_PLAY

דוגמה לכרטיס עם סמל אימייל:

שימוש בסמלים של Material Design

אתם יכולים להשתמש בסמלים של Material כדי לבחור מתוך יותר מ-2, 500 אפשרויות של סמלים ולהתאים אישית את העובי, המילוי והדירוג של הסמלים.

הנה דוגמה לכרטיס עם סמל של material של Google:

שימוש בסמלים בהתאמה אישית

כדי להוסיף סמל בהתאמה אישית, צריך לכלול את השדה iconUrl ולציין את כתובת ה-URL של הסמל.

הנה דוגמה לסמל מותאם אישית: