Node.js çalışma zamanını kullanarak Cloud Functions'da Google Workspace eklentisi oluşturun.
Hedefler
- Ortamınızı ayarlayın.
- Cloud Functions işlevi oluşturun ve dağıtın.
- Eklentiyi oluşturun ve dağıtın.
- Eklentiyi yükleyin.
Ön koşullar
Cloud projeniz için faturalandırmayı etkinleştirdiğinizden emin olun. Projelerinizin faturalandırma durumunu nasıl doğrulayacağınızı öğrenin.
Cloud SDK, Cloud projesiyle yapılandırılmıştır.
Ortamınızı ayarlama
Cloud projenizi Google Cloud Console'da açma
- Google Cloud Console'da Proje seçin sayfasına gidin.
- Kullanmak istediğiniz Google Cloud projesini seçin. Alternatif olarak Proje oluştur'u tıklayıp ekrandaki talimatları uygulayın. Google Cloud projesi oluşturursanız proje için faturalandırmayı etkinleştirmeniz gerekebilir.
OAuth kullanıcı rızası ekranını yapılandırma
Google Workspace eklentileri için izin ekranı yapılandırması gerekir. Eklentinizin OAuth kullanıcı rızası ekranını yapılandırarak Google'ın kullanıcılara ne göstereceğini belirleyebilirsiniz.
- Google Cloud Console'da Menü > > Markalaşma'ya gidin.
- 'ü zaten yapılandırdıysanız Marka, Kitle ve Veri Erişimi'nde aşağıdaki OAuth kullanıcı rızası ekranı ayarlarını yapılandırabilirsiniz. Henüz yapılandırılmadı yazan bir mesaj görürseniz Başlayın'ı tıklayın:
- Uygulama bilgileri bölümündeki Uygulama adı alanına uygulamanın adını girin.
- Kullanıcı destek e-postası bölümünde, kullanıcıların izinleriyle ilgili soruları için sizinle iletişime geçebileceği bir destek e-posta adresi seçin.
- İleri'yi tıklayın.
- Kitle bölümünde Dahili'yi seçin.
- İleri'yi tıklayın.
- İletişim bilgileri bölümünde, projenizde yapılan değişikliklerle ilgili bildirim alabileceğiniz bir e-posta adresi girin.
- İleri'yi tıklayın.
- Son bölümünde Google API Hizmetleri Kullanıcı Verileri Politikası'nı inceleyin ve kabul ediyorsanız Google API Hizmetleri: Kullanıcı Verileri Politikası'nı kabul ediyorum'u seçin.
- Devam'ı tıklayın.
- Oluştur'u tıklayın.
- Şu anda kapsam eklemeyi atlayabilirsiniz. Gelecekte, Google Workspace kuruluşunuzun dışında kullanılacak bir uygulama oluşturduğunuzda Kullanıcı türü'nü Harici olarak değiştirmeniz gerekir. Ardından, uygulamanızın ihtiyaç duyduğu yetkilendirme kapsamlarını ekleyin. Daha fazla bilgi edinmek için OAuth iznini yapılandırma kılavuzunun tamamını inceleyin.
Cloud Functions işlevi oluşturma ve dağıtma
Google Cloud Console'da Cloud Shell'i etkinleştir
simgesini tıklayın.
Cloud Shell Terminal açılır ve Google Cloud Console'un alt bölmesinde bir oturum başlatılır.
Cloud Shell'i ayarlamak ve bağlanmak için Yetkilendir'i tıklayın.
Cloud Shell Terminal'de Cloud Functions API'yi, Cloud Build API'yi, Google Workspace eklentileri API'yi ve Compute Engine API'yi etkinleştirin:
gcloud services enable cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ gsuiteaddons.googleapis.com \ compute.googleapis.com
Cloud Shell penceresinin araç çubuğunda
Düzenleyiciyi aç'ı tıklayarak Cloud Shell Düzenleyici'yi başlatın.
Bu yerleşik kod düzenleyici, projelerin oluşturulduğu ve dağıtıldığı ortamda dosyaları görüntüleme ve düzenleme kolaylığı sağlar.
Boş dizinde aşağıdaki örnek kodu içeren
function.js
dosyasını oluşturun:/** * Cloud Function that loads the homepage for a * Google Workspace add-on. * * @param {Object} req Request sent from Google * @param {Object} res Response to send back */ exports.loadHomePage = function addonsHomePage (req, res) { res.send(createAction()); }; /** Creates a card with two widgets. */ function createAction() { return { "action": { "navigations": [ { "pushCard": { "header": { "title": "Cats!" }, "sections": [ { "widgets": [ { "textParagraph": { "text": "Your random cat:" } }, { "image": { "imageUrl": "https://cataas.com/cat" } } ] } ] } } ] } }; }
Aynı dizinde, aşağıdaki örnek kodu içeren
package.json
dosyasını oluşturun:{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
Terminali aç'ı tıklayarak Cloud Shell terminaline dönün.
Cloud Build Service Account
rolünü (roles/cloudbuild.builds.builder
) Compute Engine varsayılan hizmet hesabına ekleyin.Öncelikle hizmet hesabı iznini ayarlayın:
export PROJECT_ID=$(gcloud config get project) export SERVICE_ACCOUNT_NAME=$(gcloud compute project-info describe \ --format="value(defaultServiceAccount)")
Ardından, eksik hizmet hesabı iznini verin:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \ --role="roles/cloudbuild.builds.builder"
İşlevi dağıtmak için aşağıdaki komutu çalıştırın:
gcloud functions deploy loadHomePage --runtime nodejs22 --trigger-http
İstenirse işlevin kimliği doğrulanmamış çağrılarına izin vermediğinizi belirtin. İşlevin dağıtılması birkaç dakika sürebilir.
Eklenti dağıtımı oluşturma
Eklentinin hizmet hesabı e-posta adresini bulun:
gcloud workspace-add-ons get-authorization
Hizmet hesabına
cloudfunctions.invoker
rolünü verin. SERVICE_ACCOUNT_EMAIL değerini önceki adımdakiserviceAccountEmail
alanıyla değiştirin.gcloud functions add-iam-policy-binding loadHomePage \ --role roles/cloudfunctions.invoker \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL
Dağıtılan işlevin URL'sini alın. URL'yi almak için aşağıdaki komutu çalıştırın ve
httpsTrigger
bölümünün altındakiurl
alanını bulun:gcloud functions describe loadHomePage
Düzenleyiciyi Aç'ı tıklayarak Cloud Shell Düzenleyici'ye dönün.
package.json
ile aynı dizinde, aşağıdaki örnek kodu içerendeployment.json
dosyasını oluşturun. URL değerini, önceki adımda dağıtılan işlevinurl
değeriyle değiştirin.{ "oauthScopes": ["https://www.googleapis.com/auth/gmail.addons.execute"], "addOns": { "common": { "name": "My HTTP Add-on", "logoUrl": "https://raw.githubusercontent.com/webdog/octicons-png/main/black/beaker.png", "homepageTrigger": { "runFunction": "URL" } }, "gmail": {}, "drive": {}, "calendar": {}, "docs": {}, "sheets": {}, "slides": {} } }
Dağıtımı oluşturmak için Cloud Shell terminaline dönün:
gcloud workspace-add-ons deployments create quickstart \ --deployment-file=deployment.json
Eklentiyi yükleme
Dağıtımı geliştirme modunda yükleyin:
gcloud workspace-add-ons deployments install quickstart
Eklentiyi görüntülemek için Gmail'i açın veya yeniden yükleyin. Sağdaki araç çubuğunda bir beher simgesi bulun.
Eklentiyi açmak için simgesini tıklayın. İstenirse eklentiyi yetkilendirin.
İsteğe bağlı: Temizleme
Hesabınızdan ödeme alınmasını önlemek için oluşturduğunuz kaynakları silin:
Eklentiyi Google Hesabınızdan kaldırın:
gcloud workspace-add-ons deployments uninstall quickstart
Bu hızlı başlangıç kılavuzunda kullanılan kaynaklar için ücretlendirilmemek üzere Cloud projesini silin:
gcloud projects delete PROJECT_ID
PROJECT_ID kısmını, hızlı başlangıç için kullandığınız Cloud projesinin kimliğiyle değiştirin. Cloud proje kimliğini Google Cloud Console'un Kontrol paneli sayfasında bulabilirsiniz.
Sonraki adımlar
Google Workspace eklentinize daha fazla özellik eklemek için aşağıdakilere bakın:
- HTTP uç noktalarını kullanarak Google Workspace eklentisi oluşturma
- Codelab: Node.js ve Cloud Run ile Google Workspace eklentisi oluşturma
- Akıllı çiplerle bağlantıları önizleme