Node.js ile Google Workspace eklentisi geliştirme

Node.js çalışma zamanını kullanarak Cloud Functions'da Google Workspace Eklentileri oluşturma

Hedefler

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

Ön koşullar

Ortamınızı ayarlama

Google Cloud Console'da Cloud projenizi açma

  1. Google Cloud konsolunda Proje seçin sayfasına gidin.

    Cloud projesi seçin

  2. Kullanmak istediğiniz Google Cloud projesini seçin. Dilerseniz Proje oluştur'u tıklayıp ekrandaki talimatları da uygulayabilirsiniz. Google Cloud projesi oluşturursanız proje için faturalandırmayı etkinleştirmeniz gerekebilir.

OAuth izin ekranını yapılandırın

Google Workspace eklentileri için izin ekranı yapılandırması gerekir. Yapılandırılıyor eklentinizin OAuth izin ekranı, Google'ın hangi bilgileri görüntüler.

  1. Google Cloud konsolunda Menü'ye gidin > API'lar ve Hizmetler > OAuth izin ekranı.

    OAuth izin ekranına gidin.

  2. Kullanıcı türü için Dahili'yi seçin ve ardından Oluştur'u tıklayın.
  3. Uygulama kayıt formunu doldurup Kaydet ve Devam Et'i tıklayın.
  4. Şimdilik kapsam eklemeyi atlayıp Kaydet ve Devam Et'i tıklayabilirsiniz. Gelecekte Google Workspace kuruluşu kullanıyorsanız Kullanıcı türü'nü Harici olarak değiştirmeniz ve ardından Uygulamanızın gerektirdiği yetkilendirme kapsamlarını ekleyin.

  5. Uygulama kaydı özetinizi inceleyin. Değişiklik yapmak için Düzenle'yi tıklayın. Uygulama Kontrol Paneline Dön'ü tıklayın.

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

  1. Yerel bir terminalde Cloud Functions, Cloud Build ve Google Workspace Eklentileri API'si:

    gcloud services enable cloudfunctions cloudbuild.googleapis.com gsuiteaddons.googleapis.com
    
  2. Boş bir dizinde aşağıdaki kodla function.js dosyasını oluşturun örnek kod:

    /**
     * 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"
                         }
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      };
    }
    
  3. İşlevi dağıtın:

    gcloud functions deploy loadHomePage --runtime nodejs12 --trigger-http
    

    İstenirse işlevini kullanın. İşlevin dağıtılması birkaç dakika sürebilir.

Eklenti dağıtımı oluşturma

  1. Eklentinin hizmet hesabı e-posta adresini bulun:

    gcloud workspace-add-ons get-authorization
    
  2. Hizmet hesabına cloudfunctions.invoker rolünü verin:

    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 komutuna basıp httpsTrigger bölümü altındaki url alanını bulun:

    gcloud functions describe loadHomePage
    
  4. Aşağıdaki örnek kodu kullanarak deployment.json dosyasını oluşturun. Değiştir URL önceki adım.

    {
      "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": {}
      }
    }
    
  5. Dağıtımı oluşturun:

    gcloud workspace-add-ons deployments create quickstart \
        --deployment-file=deployment.json
    

Eklentiyi yükle

  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. İçinde bir kabın simgesi olup olmadığına bakın.

  3. Eklentiyi açmak için simgeyi tıklayın. İstenirse eklentiyi devre dışı bırakın.

İsteğe bağlı: Temizleme

Hesabınızın ücretlendirilmesini önlemek için kullandığınız kaynakları silin oluşturulma tarihi:

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

    gcloud workspace-add-ons deployments uninstall quickstart
    
  2. Bu hızlı başlangıç kılavuzunda kullanılan kaynaklar için ücret alınmasını önlemek amacıyla Cloud projesi için:

    gcloud projects delete PROJECT_ID
    

    PROJECT_ID kısmını şuna ait Cloud projesinin kimliğiyle değiştirin: kullandığınız gelişmiş bir feed kullanabilirsiniz. Cloud projesi kimliğini şurada bulabilirsiniz: Google Cloud konsolunun Kontrol paneli sayfası.

Sonraki adımlar

Google Workspace Eklentinize daha fazla işlev eklemek için şu kılavuzlardan yararlanabilirsiniz: