Node.js ile Google Workspace eklentisi oluşturma

Node.js çalışma zamanını kullanarak Cloud Functions'ta Google Workspace eklentileri oluşturun.

Hedefler

  • Ortamınızı ayarlayın.
  • Cloud Functions işlevi oluşturma ve dağıtma
  • Eklentiyi oluşturun ve dağıtın.
  • Eklentiyi yükleyin.

Ön koşullar

Ortamınızı ayarlama

Cloud projenizi Google Cloud Console'da açın.

  1. Google Cloud Console'da Proje seçin sayfasına gidin.

    Bir bulut projesi seçin

  2. 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ırmak, Google'ın kullanıcılara ne göstereceğini tanımlar.

  1. Google Cloud Console'da Menü > Google Auth platform > Markalama'ya gidin.

    Markalama'ya gidin

  2. Google Auth platformyapılandırdıysanız Markalama, Kitle ve Veri Erişimi'nde aşağıdaki OAuth kullanıcı rızası ekranı ayarlarını yapılandırabilirsiniz. Google Auth platform henüz yapılandırılmadı mesajını görürseniz Başlayın'ı tıklayın:
    1. Uygulama Bilgileri bölümündeki Uygulama adı alanına uygulamanın adını girin.
    2. Kullanıcı destek e-postası bölümünde, kullanıcıların rızalarıyla ilgili soruları olduğunda sizinle iletişime geçebileceği bir destek e-posta adresi seçin.
    3. İleri'yi tıklayın.
    4. Kitle bölümünde Dahili'yi seçin.
    5. İleri'yi tıklayın.
    6. İletişim bilgileri bölümünde, projenizde yapılan değişikliklerle ilgili bildirim alabileceğiniz bir e-posta adresi girin.
    7. İleri'yi tıklayın.
    8. Bitir 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.
    9. Devam'ı tıklayın.
    10. Oluştur'u tıklayın.
  3. Şimdilik 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 gerektirdiği yetkilendirme kapsamlarını ekleyin. Daha fazla bilgi için OAuth iznini yapılandırma başlıklı kılavuzun tamamını inceleyin.

Cloud Functions işlevi oluşturma ve dağıtma

  1. Google Cloud Console'da Cloud Shell'i etkinleştir'i Cloud Shell'i etkinleştirme düğmesi tıklayın.

    Cloud Shell'i etkinleştirme

    Cloud Shell terminali açılır ve Google Cloud Console'un alt bölmesinde bir oturum başlatılır.

  2. Cloud Shell'i sağlama ve Cloud Shell'e bağlanma için Yetkilendir'i tıklayın.

  3. Cloud Shell Terminali'nde Cloud Functions API, Cloud Build API, Google Workspace eklentileri API'si ve Compute Engine API'yi etkinleştirin:

    gcloud services enable cloudfunctions.googleapis.com  \
                        cloudbuild.googleapis.com  \
                        gsuiteaddons.googleapis.com  \
                        compute.googleapis.com
    
  4. Cloud Shell penceresinin araç çubuğunda Kod Düzenleyici
düğmesi Open Editor'ı (Düzenleyiciyi aç) tıklayarak Cloud Shell Düzenleyici'yi başlatın.

    Bu yerleşik kod düzenleyici, projelerin oluşturulup dağıtıldığı ortamda dosyaları görüntüleme ve düzenleme kolaylığı sağlar.

  5. Boş dizinde, aşağıdaki örnek kodu kullanarak 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"
                         }
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      };
    }
    
  6. Aynı dizinde, aşağıdaki örnek kodu kullanarak package.json dosyasını oluşturun:

    {
      "dependencies": {
        "@google-cloud/functions-framework": "^3.0.0"
      }
    }
    
  7. Cloud Shell'i etkinleştirme düğmesi Open Terminal'ı (Terminali aç) tıklayarak Cloud Shell Terminali'ne dönün.

  8. Compute Engine varsayılan hizmet hesabına Cloud Build Service Account rolünü (roles/cloudbuild.builds.builder) 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"
    
  9. İş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

  1. Eklentinin hizmet hesabı e-postasını bulun:

    gcloud workspace-add-ons get-authorization
    
  2. Hizmet hesabına cloudfunctions.invoker rolünü verin. SERVICE_ACCOUNT_EMAIL kısmını önceki adımdaki serviceAccountEmail alanı ile değiştirin.

    gcloud functions add-iam-policy-binding loadHomePage \
       --role roles/cloudfunctions.invoker \
       --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. 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ündeki url alanını bulun:

    gcloud functions describe loadHomePage
    
  4. Kod Düzenleyici
düğmesi Open Editor'ı (Düzenleyiciyi Aç) tıklayarak Cloud Shell Düzenleyici'ye dönün.

  5. package.json ile aynı dizinde, aşağıdaki örnek kodu içeren deployment.json dosyasını oluşturun. URL kısmını, önceki adımdaki dağıtılan işlevin url ile 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": {},
        "httpOptions": {
          "granularOauthPermissionSupport": "OPT_IN"
        }
      }
    }
    
  6. 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

  1. Dağıtımı geliştirme modunda yükleyin:

    gcloud workspace-add-ons deployments install quickstart
    
  2. Eklentiyi görüntülemek için Gmail'i açın veya yeniden yükleyin. Sağdaki araç çubuğunda beher simgesini bulun.

  3. Eklentiyi açmak için simgeyi tıklayın. İstenirse eklentiyi yetkilendirin.

İsteğe bağlı: Temizleme

Hesabınızın ücretlendirilmesini önlemek için oluşturduğunuz kaynakları silin:

  1. Eklentiyi Google Hesabınızdan kaldırma:

    gcloud workspace-add-ons deployments uninstall quickstart
    
  2. Bu hızlı başlangıç kılavuzunda kullanılan kaynaklar için ücretlendirilmemek amacıyla 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 projesi kimliğini Google Cloud Console'daki Kontrol Paneli sayfasında bulabilirsiniz.

Google Workspace eklentinize daha fazla özellik eklemek için aşağıdaki kaynaklara bakın: