Apps Komut Dosyası projeleri, komut dosyası ve çalışmasıyla ilgili belirli ayrıntıları yapılandırmak için manifest dosyası kullanır. Bir manifesti nasıl görüntüleyeceğinizi ve düzenleyeceğinizi öğrenmek için Manifestler bölümüne bakın.
Bu dokümanda, bir Google Workspace eklentisi için manifest yapılandırma ayrıntıları ele alınmaktadır.
Google Workspace Eklentileri için manifest yapısı
Google Workspace Eklentileri, eklentinin görünümünün ve davranışının çeşitli yönlerini tanımlamak için Apps Komut Dosyası proje manifest dosyasını kullanır. Google Workspace Eklentileri için manifest özellikleri, manifest nesne yapısının addOns
bölümü altında düzenlenmiştir.
Örnek Google Workspace Eklentisi manifest yapılandırması
Aşağıdaki manifest dosyası, bir Google Workspace Eklentilerini tanımlayan manifest dosyası bölümünü aşağıdaki özellikler de dahil olmak üzere göstermektedir:
- Manifest'in
addOns.common
bölümü, eklentinin adını, logo URL'sini, renkleri ve diğer genel, ana makineden bağımsız ayarları tanımlar. - Manifest, ortak bir ana sayfayı tanımlar ancak Takvim, Drive, Dokümanlar, E-Tablolar ve Slaytlar'a özel ana sayfaları da tanımlar. Gmail varsayılan ana sayfayı kullanır.
- Örnek manifest ayarları aşağıdakileri etkinleştirir:
- Takvim
eventOpen
veeventUpdated
tetikleyicisi ile iki Takvim konferans çözümü. - İki evrensel işlem.
- Sürüş
onItemsSelectedTrigger
. - Gmail oluşturma işlemi ve bağlamsal tetikleyici.
- Dokümanlar
linkPreviewTrigger
. Bu tetikleyici hakkında bilgi edinmek için Bağlantıları akıllı çiplerle önizleme bölümüne bakın. - Dokümanlar, E-Tablolar ve Slaytlar için dosyaya özel arayüzler.
- Takvim
oauthScopes
alanı, proje için yetkilendirme kapsamlarını ayarlar (genellikle eklentiler için gereklidir).urlFetchWhitelist
alanı, getirilen uç noktaların belirtilen HTTPS URL önekleri listesiyle eşleşmesini sağlayan bir alandır. Daha fazla bilgi için URL'leri izin verilenler listesine ekleme bölümünü inceleyin.
Örnekteki bağlantılar, manifest referans belgelerindeki bu alanın açıklamalarına yönlendirir.
{ "addOns": { "calendar": { "createSettingsUrlFunction": "getConferenceSettingsPageUrl", "conferenceSolution": [{ "id": "my-video-conf", "logoUrl": "https://lh3.googleusercontent.com/...", "name": "My Video Conference", "onCreateFunction": "onCreateMyVideoConference" }, { "id": "my-streamed-conf", "logoUrl": "https://lh3.googleusercontent.com/...", "name": "My Streamed Conference", "onCreateFunction": "onCreateMyStreamedConference" }], "currentEventAccess": "READ_WRITE", "eventOpenTrigger": { "runFunction": "onCalendarEventOpen" }, "eventUpdateTrigger": { "runFunction": "onCalendarEventUpdate" }, "eventAttachmentTrigger": { "label": "My Event Attachment", "runFunction": "onCalendarEventAddAttachment" }, "homepageTrigger": { "runFunction": "onCalendarHomePageOpen", "enabled": true } }, "common": { "homepageTrigger": { "runFunction": "onDefaultHomePageOpen", "enabled": true }, "layoutProperties": { "primaryColor": "#ff392b", "secondaryColor": "#d68617" }, "logoUrl": "https://ssl.gstatic.com/docs/script/images/logo/script-64.png", "name": "Demo Google Workspace Add-on", "openLinkUrlPrefixes": [ "https://mail.google.com/", "https://script.google.com/a/google.com/d/", "https://drive.google.com/a/google.com/file/d/", "https://en.wikipedia.org/wiki/", "https://www.example.com/" ], "universalActions": [{ "label": "Open settings", "runFunction": "getSettingsCard" }, { "label": "Open Help URL", "openLink": "https://www.example.com/help" }], "useLocaleFromApp": true }, "drive": { "homepageTrigger": { "runFunction": "onDriveHomePageOpen", "enabled": true }, "onItemsSelectedTrigger": { "runFunction": "onDriveItemsSelected" } }, "gmail": { "composeTrigger": { "selectActions": [ { "text": "Add images to email", "runFunction": "getInsertImageComposeCards" } ], "draftAccess": "METADATA" }, "contextualTriggers": [ { "unconditional": {}, "onTriggerFunction": "onGmailMessageOpen" } ] }, "docs": { "homepageTrigger": { "runFunction": "onEditorsHomepage" }, "onFileScopeGrantedTrigger": { "runFunction": "onFileScopeGrantedEditors" }, "linkPreviewTriggers": [ { "runFunction": "onLinkPreview", "patterns": [ { "hostPattern": "example.com", "pathPrefix": "example-path" } ], "labelText": "Link preview", "localizedLabelText": { "es": "Link preview localized in Spanish" }, "logoUrl": "https://www.example.com/images/smart-chip-icon.png" } ] }, "sheets": { "homepageTrigger": { "runFunction": "onEditorsHomepage" }, "onFileScopeGrantedTrigger": { "runFunction": "onFileScopeGrantedEditors" } }, "slides": { "homepageTrigger": { "runFunction": "onEditorsHomepage" }, "onFileScopeGrantedTrigger": { "runFunction": "onFileScopeGrantedEditors" } } }, "oauthScopes": [ "https://www.googleapis.com/auth/calendar.addons.execute", "https://www.googleapis.com/auth/calendar.addons.current.event.read", "https://www.googleapis.com/auth/calendar.addons.current.event.write", "https://www.googleapis.com/auth/drive.addons.metadata.readonly", "https://www.googleapis.com/auth/gmail.addons.current.action.compose", "https://www.googleapis.com/auth/gmail.addons.current.message.metadata", "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/script.locale", "https://www.googleapis.com/auth/script.scriptapp", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/documents.currentonly", "https://www.googleapis.com/auth/spreadsheets.currentonly", "https://www.googleapis.com/auth/presentations.currentonly", "https://www.googleapis.com/auth/workspace.linkpreview" ], "urlFetchWhitelist": [ "https://www.example.com/myendpoint/" ] }
URL'leri izin verilenler listesine ekleme
Komut dosyanız veya eklentiniz tarafından erişim için önceden onaylanmış belirli URL'ler belirlemek üzere izin verilenler listelerini kullanırsınız. İzin verilenler listeleri, kullanıcı verilerinin korunmasına yardımcı olur. Bir izin verilenler listesi tanımladığınızda, komut dosyası projeleri izin verilenler listesine eklenmemiş URL'lere erişemez.
Bu alan, test dağıtımı yüklerken isteğe bağlıdır ancak sürümü oluşturulmuş bir dağıtım oluşturduğunuzda zorunludur.
Komut dosyanız veya eklentiniz aşağıdaki işlemleri gerçekleştirdiğinde izin verilenler listelerini kullanırsınız:
- Apps Komut Dosyası
UrlFetch
hizmetini kullanarak harici bir konumdan (ör. HTTPS uç noktaları) bilgi alır veya getirir. Getirmek üzere URL'leri izin verilenler listesine eklemek için manifest dosyanızaurlFetchWhitelist
alanını ekleyin. - Kullanıcı işlemine yanıt olarak bir URL açar veya görüntüler (Google harici URL'leri açan veya görüntüleyen Google Workspace Eklentileri için gereklidir). Açmak üzere URL'leri izin verilenler listesine eklemek için manifest dosyanıza
addOns.common.openLinkUrlPrefixes
alanını ekleyin.
İzin verilenler listenize ön ekler ekleme
Manifest dosyanızda izin verilenler listeleri belirttiğinizde (addOns.common.openLinkUrlPrefixes
veya urlFetchWhitelist
alanını ekleyerek) URL öneklerinin listesini eklemeniz gerekir. Manifest'e eklediğiniz önekler aşağıdaki şartları karşılamalıdır:
- Her önek geçerli bir URL olmalıdır.
- Her ön ek
http://
değilhttps://
kullanmalıdır. - Her önekin tam bir alan adı olmalıdır.
- Her ön ekin boş olmayan bir yolu olmalıdır. Örneğin,
https://www.google.com/
geçerlidir, ancakhttps://www.google.com
geçerli değildir. - URL alt alan adı öneklerini eşleştirmek için joker karakterler kullanabilirsiniz.
- Tüm bağlantıları eşleştirmek için
addOns.common.openLinkUrlPrefixes
alanında tek bir*
joker karakteri kullanılabilir ancak bu, kullanıcı verilerini riske atabileceği ve eklenti inceleme sürecini uzatabileceği için önerilmez. Yalnızca eklenti işlevselliğiniz gerektiriyorsa joker karakter kullanın.
Bir URL'nin izin verilenler listesindeki bir önekle eşleşip eşleşmediğini belirlerken aşağıdaki kurallar geçerlidir:
- Yol eşleştirme, büyük/küçük harfe duyarlıdır.
- Ön ek URL ile aynıysa eşleşmedir.
- URL, aynı veya ön ekin alt öğesiyse bir eşleşmedir.
Örneğin, https://example.com/foo
öneki şu URL'lerle eşleşir:
https://example.com/foo
https://example.com/foo/
https://example.com/foo/bar
https://example.com/foo?bar
https://example.com/foo#bar
Joker karakterler kullanma
Hem urlFetchWhitelist
hem de addOns.common.openLinkUrlPrefixes
alanları için bir alt alan adını eşleştirmek amacıyla tek bir joker karakter (*
) kullanabilirsiniz. Birden çok alt alan adını eşleştirmek için birden fazla joker karakter kullanamazsınız ve joker karakter, URL'nin baştaki önekini temsil etmelidir.
Örneğin, https://*.example.com/foo
öneki şu URL'lerle eşleşir:
https://subdomain.example.com/foo
https://any.number.of.subdomains.example.com/foo
https://*.example.com/foo
öneki aşağıdaki URL'lerle eşleşmez:
https://subdomain.example.com/bar
(sonek uyuşmazlığı)https://example.com/foo
(en az bir alt alan olmalıdır)
Manifest'inizi kaydetmeye çalışırken bazı ön ek kuralları zorunlu kılınır. Örneğin, aşağıdaki önekler kaydetmeye çalışırken manifestinizde yer alıyorsa hataya neden olur:
https://*.*.example.com/foo
(birden fazla joker karakter kullanılması yasaktır)https://subdomain.*.example.com/foo
(başta joker karakterler kullanılmalıdır)