إنشاء صفحة رئيسية لتطبيق Google Chat

تشرح هذه الصفحة كيفية إنشاء صفحة رئيسية تطبيق Google Chat صفحة التطبيق الرئيسية هي واجهة بطاقة قابلة للتخصيص يرسله تطبيق في Chat إلى مستخدم عند فتح تطبيق باستخدام تطبيق Chat.

بطاقة صفحة التطبيق الرئيسية مع تطبيقَين مصغّرَين

على سبيل المثال، يمكنك يمكنك إعداد رسالة بطاقة الصفحة الرئيسية للتطبيق لتشمل نصائح للتفاعل مع تطبيق Chat يستخدم أوامر الشرطة المائلة. بالنسبة إلى المستخدمين النهائيين، الصفحة الرئيسية للتطبيق هي متوفّرة فقط في رسالة مباشرة لتطبيق Chat إذا كانت يعمل مطور التطبيق بهذه الميزة.


يمكنك استخدام "أداة إنشاء البطاقات" لتصميم رسائل بطاقات JSON ومعاينتها لتطبيقات Chat:

فتح "أداة إنشاء البطاقات"

المتطلبات الأساسية

Python

تطبيق Google Chat مفعَّل للميزات التفاعلية لإنشاء تطبيق Chat تفاعليًا باستخدام خدمة HTTP، أكمِل عملية البدء السريع هذه.

برمجة تطبيقات

تطبيق Google Chat مفعَّل للميزات التفاعلية لإنشاء تطبيق Chat التفاعلي في "برمجة تطبيقات Google"، أكمِل البدء السريع هذا.

الضبط في وحدة تحكّم Google Cloud

Python

  1. في وحدة تحكُّم Google Cloud، انتقِل إلى القائمة > مزيد من المنتجات > Google Workspace > مكتبة المنتجات > Google Chat API.

    الانتقال إلى Google Chat API

  2. انقر على إدارة، ثم انقر على علامة التبويب الإعدادات.

  3. فعِّل الصفحة الرئيسية لتطبيق الدعم.

  4. ضَع علامة في مربّع الاختيار الصفحة الرئيسية لتطبيق الدعم.

  5. في حقل عنوان URL للصفحة الرئيسية للتطبيق، أضِف عنوان URL. عادةً ما تكون هذه القيمة هي نفسها عنوان URL باعتباره عنوان URL للتطبيق. تم طلب عنوان URL هذا APP_HOME حدثًا.

  6. انقر على حفظ.

برمجة تطبيقات

  1. في وحدة تحكُّم Google Cloud، انتقِل إلى القائمة > مزيد من المنتجات > Google Workspace > مكتبة المنتجات > Google Chat API.

    الانتقال إلى Google Chat API

  2. انقر على إدارة، ثم انقر على علامة التبويب الإعدادات.

  3. ضَع علامة في مربّع الاختيار الصفحة الرئيسية لتطبيق الدعم.

  4. انقر على حفظ.

ضبط تطبيق Chat

ضبط تطبيق Chat للصفحة الرئيسية للتطبيقات

Python

عندما يفتح مستخدم رسالة مباشرة من تطبيق Chat، تم إرسال حدث واحد (APP_HOME) إلى تطبيق Chat. عندما يتم يتلقّى تطبيق Chat هذا الحدث، وهو مثيل بتنسيق JSON RenderActions مع التنقل في pushCard.

@app.route('/', methods=['POST'])
def on_event():
  event = request.get_json()
  chat = event.get('chat')
  if chat is not None:
    return handle_chat_event(event)

def handle_chat_event(event):
  if event['chat'].get('type') == 'APP_HOME':
    return get_app_home_card()

def get_app_home_card():
  return {
    "action": {
      "navigations": [
        {
          "pushCard": {
            "sections": [
              {
                "widgets": [
                  {
                    "buttonList": {
                      "buttons": [
                        {
                          "text": "Open documentation",
                          "onClick": {
                            "openLink": {
                              "url": "https://developers.google.com/chat"
                            }
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        }
      ]
    }
  }

برمجة تطبيقات

يرسل هذا المثال رسالة بطاقة من خلال عرض بطاقة JSON. يمكنك أيضًا استخدام صفحة خدمة بطاقة "برمجة تطبيقات Google"

تنفيذ الدالة onAppHome لعرض مثيل JSON RenderActions مع التنقّل في pushCard:

// "onAppHome" is the pre-defined name of the callback that the Chat servers
// execute.
function onAppHome() {
  return {
    action: {
      navigations: [
        {
          pushCard: getCard()
        }
      ]
    }
  };
}

function getCard() {
  return {
    sections: [
      {
        widgets: [
          {
            buttonList: {
              buttons: [
                {
                  text: "Open documentation",
                  onClick: {
                    openLink: {
                      url: "https://developers.google.com/chat"
                    }
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  };
}

تعديل بطاقة رئيسية في التطبيق

يمكن تعديل بطاقة الصفحة الرئيسية للتطبيق عندما يرسل المستخدِم معلومات أو يغلق . على سبيل المثال، تحتوي بطاقة الصفحة الرئيسية للتطبيق الأولية على رسالة ترحيب يطلب من المستخدم ملء نموذج بالمعلومات. بعد أن يكمل المستخدم النموذج، فسيتم تحديث بطاقة الصفحة الرئيسية للتطبيق. يجب عرض التعديل مع مثيل. من RenderActions يحتوي على شريط تنقُّل updateCard.

Python

بالنسبة إلى تطبيقات HTTP، يشبه تحديث بطاقة الصفحة الرئيسية للتطبيق معلومات العملية التي يُدخلها المستخدمون ولكن يجب عليك إرجاع RenderActions. يمثل invokedFunction اسم الدالة التي تم استدعاؤها والمرتبطة بالأداة Card. لمزيد من المعلومات الرؤية CommonEventObject في المثال التالي، submitForm أن المستخدم قد أرسل النموذج البيانات:

@app.route('/', methods=['POST'])
def on_event():
  event = request.get_json()
  chat = event.get('chat')
  if chat is not None:
    return handle_chat_event(event)

def handle_chat_event(event):
  if event['chat'].get('type') == 'SUBMIT_FORM':
    event_object = event.get('commonEventObject')
    if event_object is not None:
      // Forms
      if 'submitForm' == event_object.get('invokedFunction'):
        return {
          'render_actions': {
            'action': {
              'navigations': [{
                'updateCard': get_update_card()
              }]
            }
          }
        }

def get_update_card():
  return {
      "action": {
          "navigations": [{
              "pushCard": {
                  "sections": [{
                      "widgets": [{
                          "buttonList": {
                              "buttons": [{
                                  "text": "Open documentation",
                                  "onClick": {
                                      "openLink": {
                                          "url": "https://developers.google.com/chat"
                                      }
                                  },
                              }]
                          }
                      }]
                  }]
              }
          }]
      }
  }

برمجة تطبيقات

يرسل هذا المثال رسالة بطاقة من خلال عرض بطاقة JSON. يمكنك أيضًا استخدام صفحة خدمة بطاقة "برمجة تطبيقات Google"

// Called from elsewhere (i.e. on button press).
function updateAppHomeCard(event) {
  return {
    render_actions: {
      action: {
        navigations: [
          {
            updateCard: getCard()
          }
        ]
      }
    }
  }
}

function getCard() {
  return {
    sections: [
      {
        widgets: [
          {
            buttonList: {
              buttons: [
                {
                  text: "Open documentation",
                  onClick: {
                    openLink: {
                      url: "https://developers.google.com/chat"
                    }
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  };
}

القيود

بشكل عام، navigation هو غير متاح لتطبيقات Chat. لا يمكنك إرجاع حزمة من البطاقات. فقط pushCard (للاستجابة الأولية) وupdateCard (للتحديثات) هي فقط متوفّرة لتطبيقات Chat