تبدیل یک برنامه تعاملی گوگل چت به افزونه گوگل ورک اسپیس

اگر یک برنامه Google Chat ساخته و منتشر کرده‌اید که از رویدادهای تعاملی Google Chat API استفاده می‌کند، مانند برنامه‌ای که مبتنی بر شروع سریع برنامه Google Chat است ، این صفحه نحوه تبدیل آن به یک افزونه Google Workspace که Google Chat را توسعه می‌دهد را نشان می‌دهد.

با تبدیل، برنامه Google Chat شما می‌تواند از چارچوب افزونه‌های Google Workspace استفاده کند و امکانات جدیدی را برای ادغام و ویژگی‌های درون Google Chat و در سراسر Google Workspace فراهم کند. به عنوان مثال، به جای دو توزیع - یک برنامه Google Chat و یک افزونه Google Workspace - می‌توانید یک افزونه Google Workspace واحد را از طریق Google Workspace Marketplace توزیع کنید که برنامه‌های Chat را در کنار سایر برنامه‌های میزبان Google Workspace، مانند Gmail، Calendar و Docs، گسترش می‌دهد.

محدودیت‌ها

قبل از شروع تبدیل، افزونه‌های محدودیت‌های Google Workspace که Google Chat را گسترش می‌دهند را بررسی کنید تا مطمئن شوید که برنامه Google Chat شما بدون از دست دادن قابلیت‌های ضروری قابل تبدیل است.

مرحله ۱: کد برنامه چت گوگل فعلی خود را کپی کنید

فرآیند تبدیل نیاز به تغییر کد دارد. برای جلوگیری از تأثیرگذاری بر برنامه چت زنده گوگل خود، یک کپی از کد خود ایجاد کرده و روی آن کار کنید.

اسکریپت برنامه‌ها

  1. پروژه اسکریپت گوگل اپس موجود در اپلیکیشن چت گوگل خود را باز کنید.
  2. در سمت چپ، روی کلی » کلیک کنید.
  3. در سمت راست، روی «کپی کردن کلیک کنید.
  4. در سمت چپ، روی پروژه کلیک کنید.
  5. در زیر پروژه Google Cloud ، روی تغییر پروژه کلیک کنید.
  6. همان شماره پروژه مرتبط با پروژه برنامه Google Chat موجود خود را وارد کنید.
  7. روی تنظیم پروژه کلیک کنید.

اچ‌تی‌پی

یک انشعاب یا کپی از کدبیس موجود خود ایجاد کنید و آن را به عنوان یک سرویس جدید، جدا از برنامه چت گوگل زنده خود، مستقر کنید.

اگر برنامه شما روی Google Cloud مستقر شده است و به ویژگی‌های مرتبط با پروژه Google Cloud (مثلاً هویت پیش‌فرض App Engine) متکی است، کد جدید باید روی سرویسی مرتبط با پروژه برنامه Google Chat موجود مستقر شود.

مرحله ۲: کد کپی شده را تغییر دهید

افزونه‌های Google Workspace که Google Chat را توسعه می‌دهند، در مقایسه با برنامه‌های Google Chat که با رویدادهای تعاملی Chat API ساخته شده‌اند، از ساختارهای درخواست و پاسخ متفاوتی استفاده می‌کنند. شما باید کد خود را به‌روزرسانی کنید تا از افزونه Google Workspace به نام EventObject به جای Event مربوط به Google Chat API برای درخواست‌ها و پاسخ‌ها استفاده کنید. برای اصلاح کد خود از راهنمای تبدیل کد استفاده کنید.

مرحله ۳: پیکربندی افزونه Google Workspace را برای کاربران آزمایشی فعال کنید

از کنسول Google Cloud برای پیکربندی تنظیمات افزونه Google Workspace برای برنامه Google Chat خود استفاده کنید:

  1. به صفحه پیکربندی Google Chat API در کنسول Google Cloud بروید.

    به صفحه پیکربندی API چت گوگل بروید

  2. در بخش ویژگی‌های تعاملی ، روی تبدیل به افزونه کلیک کنید.

  3. فعال کردن تنظیمات پیکربندی افزونه را فعال کنید .

  4. در بخش «قابلیت مشاهده» ، آدرس‌های ایمیل کاربران آزمایشی خود را اضافه کنید.

  5. در صورت لزوم، تنظیمات اتصال را با URL نقطه پایانی استقرار یا شناسه استقرار اسکریپت برنامه‌ها از کد برنامه Google Chat کپی و اصلاح شده خود از مرحله 2 به‌روزرسانی کنید.

  6. روی ذخیره کلیک کنید و تست کنید .

مرحله ۴: برنامه تبدیل شده را آزمایش کنید

با استفاده از حساب‌های کاربری آزمایشی پیکربندی‌شده در مرحله ۳، عملکرد افزونه Google Workspace را به‌طور کامل آزمایش کنید. تمام ویژگی‌ها و تعاملات را تأیید کنید.

مرحله ۵: تبدیل را برای همه کاربران تکمیل کنید

پس از اینکه تأیید کردید افزونه‌ی Google Workspace تبدیل‌شده به درستی کار می‌کند، می‌توانید آن را در دسترس همه کاربران قرار دهید.

  1. به صفحه پیکربندی Google Chat API در کنسول Google Cloud بروید.

    به صفحه پیکربندی API چت گوگل بروید

  2. در بخش «ویژگی‌های تعاملی» ، روی «تبدیل به افزونه» کلیک کنید. یک پنل کناری باز می‌شود.

  3. در پنل کناری، روی تبدیل به افزونه کلیک کنید.

  4. شناسه پروژه خود را تایپ کنید و روی تبدیل کلیک کنید.

برنامه Google Chat شما اکنون یک افزونه Google Workspace است که Google Chat را گسترش می‌دهد.

اختیاری: منابع بلااستفاده Google Cloud را پاکسازی یا آزاد کنید

در صورت تمایل، پس از تبدیل برنامه Google Chat خود به افزونه Google Workspace، برای جلوگیری از تحمیل هزینه به حساب Google Cloud خود برای منابعی که توسط برنامه Google Chat استفاده می‌شوند و دیگر مورد استفاده قرار نمی‌گیرند، می‌توانید آنها را غیرفعال کنید.

راهنمای تبدیل کد

این بخش جزئیات نگاشت بین قالب Event تعامل API چت گوگل و قالب EventObject افزونه‌ی فضای کاری گوگل را شرح می‌دهد.

درخواست نقشه برداری

جدول زیر نشان می‌دهد که چگونه فیلدهای موجود در Event API چت گوگل به فیلدهای مربوطه در افزونه EventObject گوگل ورک‌اسپیس نگاشت می‌شوند.

فیلد Event تعامل API چت گوگل فیلد EventObject افزونه‌ی Google Workspace یادداشت‌ها
action.actionMethodName ناموجود برای تعاملات کارت، نام متد می‌تواند به عنوان پارامتر در commonEventObject.parameters ارسال شود. به بخش «باز کردن یک کادر محاوره‌ای اولیه» مراجعه کنید.
action.parameters commonEventObject.parameters
appCommandMetadata chat.appCommandPayload.appCommandMetadata
common commonEventObject
configCompleteRedirectUrl
  • chat.appCommandPayload.configCompleteRedirectUri
  • chat.addedToSpacePayload.configCompleteRedirectUri
  • chat.messagePayload.configCompleteRedirectUri
بسته به نوع رویداد، در ظرفیت‌های مختلف موجود است.
dialogEventType
  • chat.appCommandPayload.dialogEventType
  • chat.buttonClickedPayload.dialogEventType
بسته به نوع رویداد، در ظرفیت‌های مختلف موجود است.
eventTime chat.eventTime
isDialogEvent
  • chat.appCommandPayload.isDialogEvent
  • chat.buttonClickedPayload.isDialogEvent
بسته به نوع رویداد، در ظرفیت‌های مختلف موجود است.
message
  • chat.messagePayload.message
  • chat.buttonClickedPayload.message
  • chat.appCommandPayload.message
بسته به نوع رویداد، در ظرفیت‌های مختلف موجود است.
space
  • chat.messagePayload.space
  • chat.addedToSpacePayload.space
  • chat.removedFromSpacePayload.space
  • chat.buttonClickedPayload.space
  • chat.widgetUpdatedPayload.space
  • chat.appCommandPayload.space
thread
  • chat.messagePayload.message.thread
  • chat.buttonClickedPayload.message.thread
  • chat.appCommandPayload.message.thread
بسته به نوع رویداد، در ظرفیت‌های مختلف موجود است.
threadKey
  • chat.messagePayload.message.thread.threadKey
  • chat.buttonClickedPayload.message.thread.threadKey
  • chat.appCommandPayload.message.threadKey
بسته به نوع رویداد، در ظرفیت‌های مختلف موجود است.
token ناموجود تأیید به طور متفاوتی انجام می‌شود، به درخواست تأیید برای برنامه‌های HTTP مراجعه کنید.
type ناموجود نوع رویداد را می‌توان از تریگر (trigger) استنباط کرد.
user chat.user

درخواست نگاشت بر اساس مورد استفاده

جدول زیر تفاوت‌های موجود در بار داده درخواست‌ها را برای موارد استفاده رایج بین برنامه‌های Google Chat ساخته شده با رویدادهای تعاملی Chat API و افزونه‌های Google Workspace که Google Chat را توسعه می‌دهند، نشان می‌دهد.

مورد استفاده تعامل API چت Event Payload افزونه‌ی EventObject Payload برای گوگل ورک‌اسپیس
برنامه به فضا اضافه شد
{
  "type": "ADDED_TO_SPACE",
  "space": { ... }
}
{
  "chat": {
    "addedToSpacePayload": {
      "space": { ... }
    }
  }
}
حذف برنامه از فضا
{
  "type": "REMOVED_FROM_SPACE",
  "space": { ... }
}
{
  "chat": {
    "removedFromSpacePayload": {
      "space": { ... }
    }
  }
}
کاربر @-به یک برنامه اشاره می‌کند
{
  "type": "MESSAGE",
  "message": { ... },
  "space": { ... },
  "configCompleteRedirectUrl": "..."
}
{
  "chat": {
    "messagePayload": {
      "message": { ... },
      "space": { ... },
      "configCompleteRedirectUri": "..."
    }
  }
}
کاربر @-یک برنامه را برای اضافه کردن به فضا منشن می‌کند شما باید یک درخواست از گوگل چت را مدیریت کنید:
{
  "type": "ADDED_TO_SPACE",
  "space": { ... },
  "message": { ... }
}
شما باید دو درخواست از گوگل چت را مدیریت کنید.

درخواست اول:
{
  "chat": {
    "addedToSpacePayload": {
      "space": { ... },
      "interactionAdd": true
    }
  }
}

درخواست دوم:
{
  "chat": {
    "messagePayload": {
      "message": { ... },
      "space": { ... }
    }
  }
}
دستور اسلش
{
  "type": "MESSAGE",
  "message": { "slashCommand": { ... } },
  "space": { ... }
}
{
  "chat": {
    "appCommandPayload": {
      "message": { ... },
      "space": { ... },
      "appCommandMetadata": { ... }
    }
  }
}
دستور اسلش برای اضافه کردن یک برنامه به فضا شما باید یک درخواست از گوگل چت را مدیریت کنید:
{
  "type": "ADDED_TO_SPACE",
  "space": { ... },
  "message": { "slashCommand": { ... } }
}
شما باید دو درخواست از گوگل چت را مدیریت کنید.

درخواست اول:
{
  "chat": {
    "addedToSpacePayload": {
      "space": { ... },
      "interactionAdd": true
    }
  }
}

درخواست دوم:
{
  "chat": {
    "appCommandPayload": {
      "message": { ... },
      "space": { ... },
      "appCommandMetadata": { ... }
    }
  }
}
کاربر روی دکمه‌ای روی کارت یا کادر محاوره‌ای کلیک می‌کند
{
  "type": "CARD_CLICKED",
  "common": { ... },
  "space": { ... },
  "message": { ... },
  "isDialogEvent": "...",
  "dialogEventType": "..."
}

برای رویدادهای دیالوگ، common.formInputs شامل مقادیر ویجت است. مثال اسکریپت برنامه‌های گوگل:

{
  "type": "CARD_CLICKED",
  "common": {
   "formInputs": {
    "contactName": {
      "": { "stringInputs": { "value": ["Kai 0"] }}
    }
  }
  },
  "space": { ... },
  "message": { ... },
  "isDialogEvent": true,
  "dialogEventType": "..."
}
{
  "commonEventObject": { ... },
  "chat": {
    "buttonClickedPayload": {
      "message": { ... },
      "space": { ... },
      "isDialogEvent": "...",
      "dialogEventType": "..."
    }
  }
}

برای رویدادهای دیالوگ، commonEventObject.formInputs شامل مقادیر ویجت است. مثال اسکریپت برنامه‌های گوگل:

{
  "commonEventObject": {
     "formInputs": {
      "contactName": {
        "stringInputs": {
          "value": ["Kai 0"]
        }
      }
    }
  },
  "chat": {
    "buttonClickedPayload": {
      "message": { ... },
      "space": { ... },
      "isDialogEvent": "true",
      "dialogEventType": "..."
    }
  }
}
کاربر اطلاعات را در کارت خانه برنامه ارسال می‌کند
{
  "type": "SUBMIT_FORM",
  "common": { ... },
  "space": { ... },
  "message": { ... },
  "isDialogEvent": "...",
  "dialogEventType": "..."
}
{
  "commonEventObject": { ... },
  "chat": {
    "buttonClickedPayload": {
      "message": { ... },
      "space": { ... },
      "isDialogEvent": "...",
      "dialogEventType": "SUBMIT_DIALOG"
    }
  }
}
کاربر با استفاده از یک دستور سریع، یک دستور برنامه را فراخوانی می‌کند.
{
  "type": "APP_COMMAND",
  "space": { ... },
  "isDialogEvent": "...",
  "dialogEventType": "..."
}
{
  "chat": {
    "appCommandPayload": {
      "message": { ... },
      "space": { ... },
      "appCommandMetadata": { ... }
    }
  }
}
پیش‌نمایش لینک
{
  "type": "MESSAGE",
  "message": {
    "matchedUrl": "..."
  },
  "space": { ... }
}
{
  "chat": {
    "messagePayload": {
      "message": {
        "matchedUrl": "..."
      },
      "space": { ... }
    }
  }
}
کاربر یک ویجت را در یک پیام کارت یا کادر محاوره‌ای به‌روزرسانی می‌کند
{
  "type": "WIDGET_UPDATED",
  "space": { ... },
  "common": { ... }
}
{
  "commonEventObject": { ... },
  "chat": {
    "widgetUpdatedPayload": {
      "space": { ... }
    }
  }
}

نگاشت پاسخ بر اساس مورد استفاده

افزونه‌های Google Workspace که Google Chat را بسط می‌دهند، به جای شیء Message اکشن‌هایی را برمی‌گردانند. جدول زیر انواع پاسخ‌های Message از API Google Chat را به معادل‌های اکشن افزونه Google Workspace آنها نگاشت می‌کند.

مورد استفاده پاسخ Message API چت گوگل پاسخ به اقدام چت افزونه‌ی Google Workspace
ایجاد پیام در فضای فراخوانی شده
{
  "actionResponse": {
    "type": "NEW_MESSAGE"
  },
  "text": "..."
}

actionResponse اختیاری است. برای کسب اطلاعات بیشتر، به بخش پاسخ به یک دستور اسلش مراجعه کنید.

{
  "hostAppDataAction": {
    "chatDataAction": {
      "createMessageAction": {
        "message": {
          "text": "..."
         }
       }
    }
  }
}

برای کسب اطلاعات بیشتر، به «ارسال پیام» مراجعه کنید.

به‌روزرسانی یک پیام
{
 "actionResponse": {
  "type": "UPDATE_MESSAGE"
  },
 "text": "..."
}

برای کسب اطلاعات بیشتر، به به‌روزرسانی پیام (چت) مراجعه کنید.

{
  "hostAppDataAction": {
    "chatDataAction": {
      "updateMessageAction": {
        "message": {
          "text": "..."
         }
       }
    }
  }
}

برای کسب اطلاعات بیشتر، به به‌روزرسانی پیام (افزونه‌ها) مراجعه کنید.

پیش‌نمایش لینک
{
  "actionResponse": {
    "type": "UPDATE_USER_MESSAGE_CARDS"
  },
  "cardsV2": [{ ... }]
}

برای کسب اطلاعات بیشتر، به پیش‌نمایش لینک (چت) مراجعه کنید.

{
  "hostAppDataAction": {
    "chatDataAction": {
      "updateInlinePreviewAction": {
        "cardsV2": [{ ... }]
      }
    }
  }
}

برای کسب اطلاعات بیشتر، به پیش‌نمایش یک پیوند (افزونه‌ها) مراجعه کنید.

باز کردن یک کادر محاوره‌ای اولیه
{
  "actionResponse": {
    "type": "DIALOG",
    "dialogAction": {
      "dialog": {
        "body": { /* Card object */ }
      }
    }
  }
}

برای کسب اطلاعات بیشتر، به باز کردن کادر گفتگو (چت) مراجعه کنید.

{
  "action": {
    "navigations": [{
      "pushCard": { /* Card object */ }
     }]
   }
}

کارتی که ارسال می‌کنید می‌تواند شامل ویجت‌هایی با اکشن‌های onClick باشد. برای افزونه‌های HTTP Google Workspace، این اکشن‌ها را برای فراخوانی یک نقطه پایانی تابع پیکربندی کنید:
{
  "onClick": {
    "action": {
      "function": "https://...",
      "parameters": [{
        "key": "clickedButton",
        "value": "submit"
      }]
    }
  }
}

برای کسب اطلاعات بیشتر، به باز کردن یک کادر محاوره‌ای (افزونه‌ها) مراجعه کنید.

بستن یک کادر محاوره‌ای
{
  "actionResponse": {
    "type": "DIALOG",
    "dialogAction": {
      "actionStatus": {
        "userFacingMessage": "..."
      }
    }
  }
}

برای کسب اطلاعات بیشتر، به بستن کادر گفتگو (چت) مراجعه کنید.

{
  "action": {
    "navigations": [{
      "endNavigation": "CLOSE_DIALOG"
    }],
    "notification": { "text": "..."}
  }
}

برای کسب اطلاعات بیشتر، به بستن کادر محاوره‌ای (افزونه‌ها) مراجعه کنید.

اتصال به یک سیستم خارجی (درخواست پیکربندی)
{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "..."
  }
}

برای کسب اطلاعات بیشتر، به اتصال به یک سیستم خارجی مراجعه کنید.

{
  "basic_authorization_prompt": {
    "authorization_url": "...",
    "resource": "..."
  }
}

برای کسب اطلاعات بیشتر، به بخش «افزونه Google Workspace خود را به یک سرویس شخص ثالث متصل کنید» مراجعه کنید.

تکمیل خودکار موارد در ابزارک‌های تعاملی
{
  "actionResponse": {
    "type": "UPDATE_WIDGET",
    "updatedWidget": {
      "suggestions": {
        "items": ["..."]
      },
      "widget": "widget_id"
    }
  }
}

برای کسب اطلاعات بیشتر، به افزودن منوی چندگزینه‌ای مراجعه کنید.

{
  "action": {
    "modifyOperations": [{
      "updateWidget": {
        "widgetId": "widget_id",
        "selectionInputWidgetSuggestions": {
          "suggestions": ["..."]
        }
      }
    }]
  }
}

برای کسب اطلاعات بیشتر، به جمع‌آوری و پردازش اطلاعات از کاربران Google Chat مراجعه کنید.

مدیریت تعاملات کارت روی پیام‌های ایجاد شده قبل از تبدیل

وقتی یک برنامه HTTP Google Chat را به یک افزونه Google Workspace تبدیل می‌کنید، تعاملات کارت روی پیام‌های ایجاد شده قبل از تبدیل نیاز به مدیریت ویژه دارد. افزونه‌های Google Workspace از یک URL کامل HTTP برای action.function کارت استفاده می‌کنند، در حالی که برنامه‌های Google Chat ساخته شده با رویدادهای تعاملی Google Chat API از یک نام تابع استفاده می‌کنند. جدول زیر این تفاوت‌ها را خلاصه می‌کند.

برنامه گوگل چت با رویدادهای تعاملی API گوگل چت ساخته شده است افزونه‌ی Google Workspace که Google Chat را گسترش می‌دهد
پیکربندی شما یک نقطه پایانی واحد را برای همه رویدادها در کنسول Google Cloud پیکربندی می‌کنید. هنگام پیاده‌سازی تعاملات کارت، action یک کارت فقط شامل نام تابعی است که باید اجرا شود. نقطه پایانی HTTP مشترک برای رویدادهای کلیک کارت فراخوانی می‌شود.

برای کسب اطلاعات بیشتر، به باز کردن کادر گفتگو (چت) مراجعه کنید.



{
  "onClick": {
    "action": {
      "function": "submit"
    }
  }
}
شما می‌توانید به صورت اختیاری نقاط پایانی هر رویداد را در کنسول Google Cloud پیکربندی کنید، اما این شامل رویدادهای کلیک کارت نمی‌شود. هنگام پیاده‌سازی تعاملات کارت، action یک کارت باید حاوی URL کامل نقطه پایانی HTTP برای فراخوانی باشد. می‌توانید برای هر دکمه یک نقطه پایانی HTTP منحصر به فرد تنظیم کنید، یا از یک نقطه پایانی مشترک استفاده کنید و اکشن را به عنوان پارامتر در action.parameters ارسال کنید.

برای کسب اطلاعات بیشتر، به باز کردن یک کادر محاوره‌ای (افزونه‌ها) مراجعه کنید.



{
  "onClick": {
    "action": {
      "function": "https://...",
      "parameters": [{
        "key": "method",
        "value": "submit"
      }]
    }
  }
}

برای اطمینان از اینکه تعاملات کارت برای پیام‌های ایجاد شده قبل از تبدیل، فعال هستند، یک URL تعامل کارت در صفحه پیکربندی Google Chat API پیکربندی کنید.

این URL فقط برای تعاملات روی پیام‌هایی که قبل از تبدیل برنامه شما ایجاد شده‌اند، استفاده می‌شود. وقتی کاربری با یکی از این پیام‌ها تعامل می‌کند، مقدار اصلی action.function به عنوان پارامتری به نام __action_method_name__ ارسال می‌شود.

مثال: کلیک روی کارت

اگر آدرس اینترنتی تعامل کارت را به صورت https://.../card-interaction-handler پیکربندی کرده باشید، و کاربر روی یک کارت در یک پیام تاریخی با اقدام زیر کلیک کند:

{
  "onClick": {
    "action": {
     "function": "submit"
    }
  }
}

یک رویداد با فرمت زیر به آدرس اینترنتی تعامل کارت پیکربندی شده شما ارسال می‌شود:

{
  "commonEventObject": {
    "parameters": {
      "__action_method_name__": "submit"
    }
  },
  "chat": {
    "buttonClickedPayload": { ... }
  }
}

مثال: منوی چند انتخابی

اگر کاربری با یک منوی چند انتخابی با منبع داده خارجی تعامل داشته باشد:

{
  "selectionInput": {
    "name": "contacts",
    "type": "MULTI_SELECT",
    "externalDataSource": {
      "function": "getContacts"
    }
  }
}

یک رویداد با فرمت زیر به آدرس اینترنتی تعامل کارت پیکربندی شده شما ارسال می‌شود:

{
  "commonEventObject": {
    "parameters": {
      "__action_method_name__": "getContacts",
    }
  },
  "chat": {
    "widgetUpdatedPayload": { ... }
  }
}

اگر گزینه‌ی «استفاده از آدرس اینترنتی مشترک HTTP برای همه محرک‌ها» را برای تریگرهای HTTP خود فعال کنید، URL مشترک برای رویدادهای کلیک دکمه نیز استفاده می‌شود.

درخواست‌های مربوط به افزونه‌های HTTP Google Workspace که Chat را گسترش می‌دهند، تأیید کنید

برای برنامه‌های چت گوگل مبتنی بر HTTP، منطق تأیید اینکه درخواست‌ها از گوگل سرچشمه می‌گیرند، هنگام تبدیل به افزونه‌ی Google Workspace باید به‌روزرسانی شود.

تفاوت‌های کلیدی در تأیید درخواست عبارتند از:

نوع برنامه مخاطبان پشتیبانی‌شده ایمیل حساب کاربری سرویس
برنامه گوگل چت با رویدادهای تعاملی API گوگل چت ساخته شده است شماره پروژه chat@system.gserviceaccount.com
افزونه‌ی Google Workspace که گوگل چت را گسترش می‌دهد فقط نقطه پایانی HTTP ایمیل حساب کاربری خدمات به ازای هر پروژه

ایمیل حساب سرویس منحصر به فرد برای افزونه Google Workspace شما را می‌توانید در بخش افزونه‌های Convert to Google Workspace در صفحه پیکربندی Google Chat API در کنسول Google Cloud پیدا کنید.

برای تأیید درخواست‌ها در افزونه‌ی ارتقا یافته‌ی Google Workspace خود:

  1. اگر از توابع Cloud Run استفاده می‌کنید، نقش roles/cloudfunctions.invoker را به حساب سرویس per-addon اعطا کنید. به بخش «مجاز کردن دسترسی با IAM» مراجعه کنید.
  2. کد تأیید توکن خود را به‌روزرسانی کنید تا از ایمیل حساب سرویس افزونه Google Workspace برای تأیید امضای توکن Bearer استفاده کنید. به بخش اعتبارسنجی درخواست‌ها از Google مراجعه کنید.