Tham chiếu cho extension.yaml

Tệp thông số tiện ích mở rộng của bạn ( extension.yaml ) chứa siêu dữ liệu của tiện ích mở rộng của bạn, khai báo các tài nguyên được tạo bởi tiện ích mở rộng và các API cũng như quyền truy cập mà tiện ích mở rộng yêu cầu, đồng thời xác định mọi tham số do người dùng định cấu hình do tiện ích mở rộng cung cấp.

Các bảng trên trang này mô tả các trường có sẵn cho tệp extension.yaml .

Thông tin cơ bản và nhận dạng

name: your-extension-name
version: 1.0.0         # Semantic versioning (semver)
specVersion: v1beta    # Always "v1beta"
license: Apache-2.0    # Always "Apache-2.0" (required to publish on extensions.dev)
billingRequired: true  # Always "true"

displayName: Your extension name
description: >-
  Description of the extension. (One or two
  sentences.)
icon: icon.png
tags: [tag, anothertag]

sourceUrl: https://github.com/your-org/your-repo   # GitHub repo URL
releaseNotesUrl: https://github.com/your-org/your-repo/blob/main/CHANGELOG.md

author:
  authorName: Your Company
  email: extensions@example.com
  url: https://example.com/
contributors:
  - authorName: Your Name
  - authorName: Another Contributor
    email: colleague@example.net
    url: https://github.com/their-org/
Các trường cơ bản
name
sợi dây
(yêu cầu)

Mã định danh cho phần mở rộng.

Chỉ có thể chứa chữ thường, số và dấu gạch ngang; Giới hạn 40 ký tự.

Lưu ý: Giá trị này được sử dụng để tạo ID phiên bản của tiện ích mở rộng (sau đó được sử dụng để tạo tên tài khoản dịch vụ của tiện ích mở rộng và tài nguyên dành riêng cho tiện ích mở rộng).

version
sợi dây
(yêu cầu)

Phiên bản của phần mở rộng.

Phải tuân theo phiên bản học kỳ (ví dụ: 1.2.0).

specVersion
sợi dây
(yêu cầu)

Phiên bản đặc tả Tiện ích mở rộng Firebase.

Giá trị hiện tại: v1beta

license
sợi dây
(không bắt buộc)

Giấy phép cho phần mở rộng.

Tiện ích mở rộng của bạn phải được cấp phép sử dụng Apache-2.0 .

billingRequired
boolean
(không bắt buộc)

Liệu các dịch vụ mà tiện ích mở rộng sử dụng có yêu cầu tài khoản thanh toán Firebase trả phí hay không.

Luôn được đặt thành true .

displayName
sợi dây
(không bắt buộc)

Tên hiển thị thân thiện cho tiện ích mở rộng (3-5 từ).

Giới hạn 40 ký tự.

description
sợi dây
(không bắt buộc)
Mô tả ngắn gọn về nhiệm vụ mà tiện ích mở rộng của bạn thực hiện (~1 câu).
icon
sợi dây
(không bắt buộc)

Tệp để sử dụng làm biểu tượng tiện ích mở rộng của bạn trên extensions.dev và bảng điều khiển Firebase.

Tệp này phải là hình vuông PNG có kích thước từ 512x512 đến 1024x1024 pixel. Đặt tệp vào cùng thư mục với extension.yaml ; bạn không thể chỉ định thư mục con.

Hãy ghi nhớ các nguyên tắc sau khi thiết kế biểu tượng cho tiện ích mở rộng của bạn:

  • Chọn màu nền và tác phẩm nghệ thuật phù hợp với thương hiệu của bạn.
  • Giữ màu biểu tượng của bạn đơn giản, chỉ sử dụng 2 màu. Nhiều màu sắc có thể làm cho biểu tượng của bạn trở nên choáng ngợp về mặt thị giác.
  • Vì lý do tương tự, không sử dụng độ dốc trong biểu tượng của bạn. Độ chuyển màu khó phân biệt ở kích thước nhỏ và làm cho biểu tượng trở nên phức tạp về mặt thị giác.
  • Sử dụng hình ảnh đơn giản, độc đáo để truyền đạt chức năng của tiện ích mở rộng của bạn.
  • Nếu công ty của bạn xây dựng nhiều tiện ích mở rộng, đừng sử dụng logo của bạn làm biểu tượng. Người dùng sẽ gặp khó khăn trong việc phân biệt giữa các tiện ích mở rộng của bạn.
  • Làm cho tác phẩm nghệ thuật trở nên đồ họa và đậm nét. Không sử dụng tác phẩm nghệ thuật tinh tế hoặc phức tạp vì chúng sẽ không hiển thị tốt ở kích thước nhỏ hơn.
  • Không bao gồm các từ giải thích chức năng của tiện ích mở rộng của bạn. Văn bản thường không đọc được ở kích thước nhỏ hơn.
tags
danh sách các chuỗi
(không bắt buộc)
Thẻ để giúp người dùng khám phá tiện ích mở rộng của bạn. Các thẻ sau ánh xạ tới các danh mục trên Trung tâm tiện ích mở rộng: marketing , messaging , payments , search , shipping , social , utilities , ai
sourceUrl
sợi dây
(không bắt buộc)
URL công khai nơi thư mục tiện ích mở rộng có thể được truy cập.
releaseNotesUrl
sợi dây
(không bắt buộc)
URL công khai nơi có thể truy cập ghi chú phát hành của tiện ích mở rộng.
author
một đối tượng tác giả
(không bắt buộc)

Tác giả chính và người liên hệ cho phần mở rộng.

author:
  authorName: Your Company
  email: extensions@example.com
  url: https://example.com/
Trường tác giả
authorName
sợi dây
(yêu cầu)

Tên của tác giả.

Có thể là một người, công ty, tổ chức, v.v.

email
sợi dây
(không bắt buộc)
Địa chỉ email của tác giả.
url
sợi dây
(không bắt buộc)
URL công khai nơi thông tin về tác giả có thể được truy cập.
contributors
danh sách đối tượng tác giả
(không bắt buộc)

Bất kỳ tác giả đóng góp bổ sung nào cho phần mở rộng.

contributors:
  - authorName: Your Name
  - authorName: Another Contributor
    email: colleague@example.net
    url: https://github.com/their-org/
Trường tác giả
authorName
sợi dây
(yêu cầu)

Tên của tác giả.

Có thể là một người, công ty, tổ chức, v.v.

email
sợi dây
(không bắt buộc)
Địa chỉ email của tác giả.
url
sợi dây
(không bắt buộc)
URL công khai nơi thông tin về tác giả có thể được truy cập.

API Firebase và Google Cloud

Các trường này chỉ định API Firebase và Google mà tiện ích mở rộng sử dụng. Khi người dùng cài đặt tiện ích mở rộng, họ có thể chọn tự động bật các API này trong dự án của mình.

apis:
  - apiName: apiname.googleapis.com
    reason: Explanation of why the extension uses this API
  - apiName: anotherapiname.googleapis.com
    reason: Explanation of why the extension uses this API
trường API
apiName
sợi dây
(yêu cầu)

Tên của API Google

Phải tương ứng với trường Tên dịch vụ như được liệt kê trên trang tổng quan của từng API ( ví dụ ) trong Thư viện API Google Cloud

reason
sợi dây
(yêu cầu)
Mô tả ngắn gọn lý do tiện ích mở rộng cần sử dụng API này

Vai trò IAM

Các trường này chỉ định vai trò Cloud IAM mà tiện ích mở rộng yêu cầu. Tài khoản dịch vụ được cung cấp cho tiện ích mở rộng sẽ được cấp các vai trò này.

Bạn chỉ có thể chỉ định một trong các vai trò được hỗ trợ .

roles:
  - role: product.role
    reason: Explanation of why the extension needs this level of access
  - role: anotherproduct.role
    resource: projects/${project_id}/resource_type/*
    reason: Explanation of why the extension needs this level of access
Các trường vai trò
role
sợi dây
(yêu cầu)

Tên của vai trò IAM cần thiết để tiện ích mở rộng hoạt động

Phải là một trong những vai trò được hỗ trợ

reason
sợi dây
(yêu cầu)
Mô tả ngắn gọn lý do tại sao tiện ích mở rộng cần quyền truy cập do vai trò này cấp
resource
sợi dây
(không bắt buộc)

Giới hạn phạm vi của vai trò đối với tài nguyên này.

Nếu bị bỏ qua, mặc định là projects/${project_id} . Xem Giảm phạm vi vai trò .

Dịch vụ bên ngoài

Các trường này chỉ định các dịch vụ không phải của Firebase và không phải của Google mà tiện ích mở rộng sử dụng (thường là API REST). Nền tảng Tiện ích mở rộng Firebase không cung cấp bất kỳ phương tiện nào để tự động bật hoặc thực hiện ủy quyền cho các dịch vụ này.

externalServices:
  - name: Example API
    pricingUri: https://developers.example.com/pricing
  - name: Another Example API
    pricingUri: https://developers.example.com/pricing
Lĩnh vực dịch vụ bên ngoài
name
sợi dây
(yêu cầu)
Tên của dịch vụ bên ngoài cần thiết để tiện ích mở rộng hoạt động
pricingUri
sợi dây
(yêu cầu)
URI tới thông tin về giá của dịch vụ

Các thông số do người dùng cấu hình

Các trường này xác định các tham số mà tiện ích mở rộng cung cấp cho người dùng định cấu hình.

params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      What do you want to set PARAM_ID to?
      This is a longer description of the parameter, often phrased as a prompt
      to the user.
  - param: ANOTHER_PARAM_ID
    label: Short description of the parameter
    description: >
      What do you want to set ANOTHER_PARAM_ID to?
      This is a longer description of the parameter.
    example: example-input
    validationRegex: "^[a-zA-Z][a-zA-Z-]*[a-zA-Z]?$"
    validationErrorMessage:
      Must be a hyphen-delimited string of alphabetic characters
    default: default-value
    required: false
    immutable: true
Các trường thông số
param
sợi dây
(yêu cầu)
Tên của tham số. Bạn sử dụng tên này để tham chiếu giá trị tham số trong mã.
label
sợi dây
(yêu cầu)
Mô tả ngắn gọn cho tham số. Hiển thị cho người dùng khi họ được nhắc về giá trị của tham số.
description
sợi dây
(không bắt buộc)

Mô tả chi tiết cho tham số. Hiển thị cho người dùng khi họ được nhắc về giá trị của tham số.

Hỗ trợ Markdown.

example
sợi dây
(không bắt buộc)
Giá trị ví dụ cho tham số.
default
sợi dây
(không bắt buộc)
Giá trị mặc định cho tham số nếu người dùng để trống giá trị của tham số.
validationRegex
sợi dây
(không bắt buộc)
Biểu thức chính quy để xác thực giá trị do người dùng định cấu hình của tham số. Cú pháp Google RE2 .
validationErrorMessage
sợi dây
(không bắt buộc)
Thông báo lỗi hiển thị nếu xác thực biểu thức chính quy không thành công.
required
boolean
(không bắt buộc)
Xác định xem người dùng có thể gửi chuỗi trống hay không khi họ được nhắc nhập giá trị của tham số. Mặc định là true .
immutable
boolean
(không bắt buộc)

Xác định xem người dùng có thể thay đổi giá trị của tham số sau khi cài đặt hay không (chẳng hạn như nếu họ định cấu hình lại tiện ích mở rộng). Mặc định là false .

Lưu ý: Nếu bạn xác định tham số "vị trí" cho các chức năng được triển khai của tiện ích mở rộng của mình, hãy đặt trường này thành true .

type
sợi dây
(không bắt buộc)
Kiểu tham số. Các loại tham số đặc biệt có thể có các yêu cầu bổ sung hoặc cách trình bày giao diện người dùng khác nhau. Xem các phần sau.

Các thông số có thể lựa chọn và đa lựa chọn

Các tham số có thể lựa chọn và nhiều lựa chọn sẽ nhắc người dùng chọn từ danh sách các tùy chọn được xác định trước.

params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      Do you want to enable the option?
    type: select
    options:
      - label: Yes
        value: true
      - label: No
        value: false
  - param: ANOTHER_PARAM_ID
    label: Short description of the parameter
    description: >-
      Which options do you want to enable?
    type: multiselect
    options:
      - value: red
      - value: green
      - value: blue
Các trường tham số trắc nghiệm
type
sợi dây

select hoặc multiselect

Chỉ định rằng tham số có thể là một giá trị ( select ) hoặc một số giá trị ( multiselect ) được chọn từ một tập hợp các lựa chọn được xác định trước

options
danh sách các lựa chọn
(yêu cầu)

Các tùy chọn mà người dùng có thể chọn

Các trường tùy chọn
value
sợi dây
(yêu cầu)
Một trong những giá trị người dùng có thể chọn. Đây là giá trị bạn nhận được khi đọc giá trị tham số trong mã.
label
sợi dây
(không bắt buộc)
Mô tả ngắn gọn về tùy chọn có thể lựa chọn. Nếu bỏ qua, mặc định là value .

Các tham số tài nguyên có thể lựa chọn

Các tham số tài nguyên có thể lựa chọn sẽ nhắc người dùng chọn tài nguyên (phiên bản cơ sở dữ liệu, nhóm lưu trữ, v.v.) từ dự án của họ.

params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      Which resource do you want to use?
    type: selectresource
    resourceType: product.googleapis.com/ResourceType
Các trường tham số tài nguyên
type
sợi dây

selectresource

Chỉ định rằng tham số đại diện cho tài nguyên dự án

resourceType
sợi dây
(yêu cầu)

Loại tài nguyên để nhắc người dùng chọn.

Giá trị hợp lệ:

  • storage.googleapis.com/Bucket
  • firestore.googleapis.com/Database
  • firebasedatabase.googleapis.com/DatabaseInstance

Tuy nhiên, hiện chỉ có các nhóm Cloud Storage mới có giao diện người dùng lựa chọn (các loại tài nguyên khác được trình bày dưới dạng trường nhập văn bản dạng tự do).

Thông số bí mật

Các giá trị bí mật do người dùng cung cấp (chẳng hạn như khóa API) được xử lý khác nhau:

  • Các giá trị bí mật được lưu trữ bằng Cloud Secret Manager. Chỉ những khách hàng được ủy quyền (chẳng hạn như phiên bản đã cài đặt của tiện ích mở rộng) mới có thể truy cập các giá trị này.
  • Khi người dùng được nhắc cung cấp các giá trị này, thông tin đầu vào của họ sẽ không được hiển thị.
params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      What is the secret value?
    type: secret
Trường tham số bí mật
type
sợi dây

secret

Chỉ định rằng tham số là một giá trị bí mật

Tài nguyên chức năng đám mây

Các trường này khai báo các Chức năng đám mây có trong tiện ích mở rộng. Cú pháp khai báo tài nguyên có vẻ hơi khác một chút giữa các hàm thế hệ 1 và thế hệ 2, những hàm này có thể cùng tồn tại trong một phần mở rộng.

Chức năng đám mây thế hệ 1

resources:
  - name: functionName
    type: firebaseextensions.v1beta.function
    description: >-
      Description of what the function does. (One or two
      sentences.)
    properties:
      runtime: runtime-version
      eventTrigger:
        eventType: google.product.event
        resource: projects/_/resource/specifier
Trường tài nguyên
name
sợi dây
(yêu cầu)

Tên thân thiện với người dùng cho chức năng xuất.

Nếu bạn không chỉ định thuộc tính entryPoint (xem bên dưới), giá trị này phải khớp với tên của hàm trong mã nguồn hàm của bạn.

Tên cuối cùng của chức năng được triển khai sẽ có định dạng sau: ext- extension-instance-id - name .

type
sợi dây
(yêu cầu)
Đối với tài nguyên hàm thế hệ 1: firebaseextensions.v1beta.function
description
sợi dây
(yêu cầu)

Mô tả ngắn gọn về nhiệm vụ mà hàm thực hiện cho tiện ích mở rộng.

properties
(yêu cầu)

Thuộc tính Chức năng đám mây thế hệ 1. Các thuộc tính quan trọng nhất được liệt kê bên dưới, nhưng bạn có thể tìm thấy danh sách đầy đủ trong tài liệu tham khảo Chức năng đám mây .

Của cải
location
(không bắt buộc)

Vị trí để triển khai chức năng. Mặc định là us-central1

entryPoint
(không bắt buộc)
Tên của hàm được xuất trong mã nguồn hàm của bạn mà tiện ích mở rộng sẽ tìm kiếm. Mặc định là giá trị của name ở trên.
sourceDirectory
(không bắt buộc)

Thư mục chứa package.json của bạn ở thư mục gốc. Tệp mã nguồn chức năng của bạn phải nằm trong thư mục này. Mặc định cho functions

Lưu ý: Trường main của package.json chỉ định tệp cho mã nguồn hàm của bạn (như index.js ).

timeout
(không bắt buộc)

Thời gian thực hiện tối đa của hàm.

  • Mặc định: 60s
  • Giá trị tối đa: 540s
availableMemoryMb
(không bắt buộc)

Lượng bộ nhớ tính bằng MB có sẵn cho chức năng này.

  • Mặc định: 256
  • Các giá trị hợp lệ: 128 , 256 , 512 , 10242048
runtime
(khuyến khích)

Môi trường thời gian chạy cho chức năng.

httpsTrigger
hoặc
eventTrigger
hoặc
scheduleTrigger
hoặc
taskQueueTrigger
(bắt buộc phải có một trong các loại trình kích hoạt chức năng này)
Xem phần Viết hàm đám mây để biết tiện ích mở rộng để biết thông tin cụ thể về từng loại trình kích hoạt.

Chức năng đám mây thế hệ thứ 2

resources:
  - name: functionName
    type: firebaseextensions.v1beta.v2function
    description: >-
      Description of what the function does. (One or two
      sentences.)
    properties:
      buildConfig:
        runtime: nodejs16
      serviceConfig:
        availableMemory: 512M
      eventTrigger:
        eventType: google.firebase.firebasealerts.alerts.v1.published
        triggerRegion: global
        eventFilters:
          - attribute: alerttype
            value: crashlytics.newFatalIssue

Trường tài nguyên
name
sợi dây
(yêu cầu)

Tên thân thiện với người dùng cho chức năng xuất.

Nếu bạn không chỉ định thuộc tính entryPoint (xem bên dưới), giá trị này phải khớp với tên của hàm trong mã nguồn hàm của bạn.

Tên cuối cùng của chức năng được triển khai sẽ có định dạng sau: ext- extension-instance-id - name .

type
sợi dây
(yêu cầu)
Đối với tài nguyên hàm thế hệ thứ 2: firebaseextensions.v1beta.v2function
description
sợi dây
(yêu cầu)

Mô tả ngắn gọn về nhiệm vụ mà hàm thực hiện cho tiện ích mở rộng.

properties
(yêu cầu)

Thuộc tính Chức năng đám mây thế hệ thứ 2. Các thuộc tính quan trọng nhất được liệt kê bên dưới, nhưng bạn có thể tìm thấy danh sách đầy đủ trong tài liệu tham khảo Chức năng đám mây .

Của cải
location
(không bắt buộc)

Vị trí để triển khai chức năng. Mặc định là us-central1

sourceDirectory
(không bắt buộc)

Thư mục chứa package.json của bạn ở thư mục gốc. Tệp mã nguồn chức năng của bạn phải nằm trong thư mục này. Mặc định cho functions

Lưu ý: Trường main của package.json chỉ định tệp cho mã nguồn hàm của bạn (như index.js ).

Ngoài ra còn có ba trường loại đối tượng có thuộc tính riêng:

thuộc tính buildConfig
buildConfig.runtime
(khuyến khích)

Môi trường thời gian chạy cho chức năng.

buildConfig.entryPoint
(không bắt buộc)
Tên của hàm được xuất trong mã nguồn hàm của bạn mà tiện ích mở rộng sẽ tìm kiếm. Mặc định là giá trị của name ở trên.
Thuộc tính cấu hình dịch vụ
serviceConfig.timeoutSeconds
(không bắt buộc)

Thời gian thực hiện tối đa của hàm.

  • Mặc định: 60
  • Giá trị tối đa: 540
serviceConfig.availableMemory
(không bắt buộc)
Lượng bộ nhớ có sẵn cho một chức năng. Mặc định là 256M . Các đơn vị được hỗ trợ là k , M , G , Mi , Gi . Nếu không có đơn vị nào được cung cấp thì giá trị được hiểu là byte.
thuộc tính sự kiệnTrigger
eventTrigger.eventType
(yêu cầu)
Loại sự kiện cần lắng nghe. Xem phần Viết hàm đám mây để biết phần mở rộng cho các loại sự kiện có sẵn cho từng sản phẩm.
eventTrigger.eventFilters
(không bắt buộc)
Các bộ lọc giới hạn hơn nữa các sự kiện cần nghe. Ví dụ: bạn chỉ có thể nghe các sự kiện khớp với một mẫu tài nguyên cụ thể. Xem Viết hàm đám mây để biết tiện ích mở rộng để biết thông tin về cách lọc từng loại sự kiện.
eventTrigger.channel
(không bắt buộc)
Tên của kênh được liên kết với trình kích hoạt ở định dạng projects/{project}/locations/{location}/channels/{channel} . Nếu bạn bỏ qua thuộc tính này, hàm sẽ lắng nghe các sự kiện trên kênh mặc định của dự án.
eventTrigger.triggerRegion
(không bắt buộc)
Trình kích hoạt sẽ chỉ nhận các sự kiện bắt nguồn từ khu vực này. Nó có thể là cùng một khu vực với chức năng, một khu vực khác hoặc nhiều khu vực hoặc khu vực toàn cầu. Nếu không được cung cấp, giá trị mặc định là cùng vùng với hàm.

Sự kiện vòng đời

Sự kiện vòng đời cho phép bạn chỉ định các chức năng sẽ chạy khi người dùng cài đặt, cập nhật hoặc định cấu hình phiên bản tiện ích mở rộng của bạn. Xem Xử lý các sự kiện trong vòng đời của tiện ích mở rộng của bạn .

lifecycleEvents:
  onInstall:
    function: myTaskFunction
    processingMessage: Describes the task being completed
  onUpdate:
    function: myOtherTaskFunction
    processingMessage: Describes the task being completed
  onConfigure:
    function: myOtherTaskFunction
    processingMessage: Describes the task being completed
Các trường sự kiện vòng đời
onInstall
(không bắt buộc)

Chỉ định một chức năng sẽ chạy khi người dùng cài đặt tiện ích mở rộng.

Đặc tả chức năng
function
sợi dây
(yêu cầu)

Tên của hàm kích hoạt hàng đợi nhiệm vụ sẽ xử lý sự kiện.

Hàm này phải được khai báo trong phần resources và có taskQueue được xác định.

processingMessage
sợi dây
(yêu cầu)
Thông báo hiển thị trong bảng điều khiển Firebase khi tác vụ đang được thực hiện.
onUpdate
(không bắt buộc)

Chỉ định một chức năng sẽ chạy khi người dùng cập nhật tiện ích mở rộng.

Đặc tả chức năng
function
sợi dây
(yêu cầu)

Tên của hàm kích hoạt hàng đợi nhiệm vụ sẽ xử lý sự kiện.

Hàm này phải được khai báo trong phần resources và có taskQueue được xác định.

processingMessage
sợi dây
(yêu cầu)
Thông báo hiển thị trong bảng điều khiển Firebase khi tác vụ đang được thực hiện.
onConfigure
(không bắt buộc)

Chỉ định một chức năng sẽ chạy khi người dùng định cấu hình lại tiện ích mở rộng.

Đặc tả chức năng
function
sợi dây
(yêu cầu)

Tên của hàm kích hoạt hàng đợi nhiệm vụ sẽ xử lý sự kiện.

Hàm này phải được khai báo trong phần resources và có taskQueue được xác định.

processingMessage
sợi dây
(yêu cầu)
Thông báo hiển thị trong bảng điều khiển Firebase khi tác vụ đang được thực hiện.

Sự kiện tùy chỉnh (Eventarc)

Sự kiện tùy chỉnh là các sự kiện mà tiện ích mở rộng của bạn phát ra để cho phép người dùng chèn logic của riêng họ vào tiện ích mở rộng của bạn. Xem phần Eventarc trong Thêm móc người dùng vào tiện ích mở rộng .

events:
  - type: publisher-id.extension-name.version.event-name
    description: Description of the event
  - type: publisher-id.extension-name.version.another-event-name
    description: Description of the other event
Trường sự kiện tùy chỉnh
type
sợi dây
(yêu cầu)
Mã định danh loại của sự kiện. Tạo mã nhận dạng từ các trường được phân cách bằng 3-4 dấu chấm: bắt buộc phải có ID nhà xuất bản, tên tiện ích mở rộng và tên sự kiện; trường phiên bản được khuyến nghị. Chọn tên sự kiện duy nhất và mang tính mô tả cho từng loại sự kiện bạn xuất bản.
description
sợi dây
(yêu cầu)
Mô tả sự kiện.