Google Kitaplar'daki bağlantıları akıllı çiplerle önizleme

Kodlama seviyesi: Orta
Süre: 30 dakika
Proje türü: Google Workspace Eklentisi

Hedefler

  • Eklentinin işlevini anlayın.
  • Eklentiler kullanarak nasıl eklenti oluşturacağınızı Google Apps Komut Dosyası'na göz atın ve Apps Komut Dosyası'nın birlikte çalışır.
  • Ortamınızı ayarlayın.
  • Komut dosyasını ayarlayın.
  • Komut dosyasını çalıştırın.

Bu Google Workspace eklentisi hakkında

Bu örnekte, hesabınızdaki bağlantıları önizleyen bir Google Workspace eklentisi oluşturacaksınız. Google Kitaplar Google Dokümanlar dokümanı. Bir Google Kitaplar URL'sini bir sayfaya yazdığınızda veya yapıştırdığınızda eklenti, bağlantısını tıklayın ve bir bağlantı önizlemesini tetikler. Bağlantıyı önizlemek için bağlanabilen bir kart görüntülemek için işaretçiyi bağlantının üzerinde tutun kitap hakkında daha fazla bilgi görüntüler.

Bu eklenti Apps Komut Dosyası'nın UrlFetch Hizmeti Google Kitaplar'a bağlan API ve Google Kitaplar hakkında görüntüleyebilirsiniz.

İşleyiş şekli

Google Workspace eklentisi manifest'inde komut dosyası, dosyayı yapılandırırken Google Dokümanlar'ı genişletmek ve bağlantıyı tetiklemek için Google Kitaplar web sitesindeki belirli kalıplarla eşleşen URL'ler için önizlemeler (https://books.google.com).

Komut dosyası, kod dosyasında Google Books API'ye bağlanır ve URL'yi kullanır almak için kullanabilirsiniz (örneğin, Volume kaynak) gösterilir. İlgili içeriği oluşturmak için kullanılan komut dosyası, bu bilgileri kullanarak kitabın başlıklı bir özet, sayfa sayısını, sayfa sayısını gösteren gibi bilgileri görebilirsiniz.

Apps Komut Dosyası hizmetleri

Bu eklenti aşağıdaki hizmetleri kullanır:

Ön koşullar

Bu örneği kullanmak için aşağıdaki ön koşullara sahip olmanız gerekir:

  • Google Hesabı (Google Workspace hesapları (yönetici onayı gerektirir).
  • İnternete erişimi olan bir web tarayıcısı.

  • Bir Google Cloud projesi ilişkilendirilmiş faturalandırma hesabı ile. Daha fazla bilgi için inceleyebilirsiniz.

Ortamınızı ayarlama

Aşağıdaki bölümler, ekleyebilirsiniz.

Google Cloud Console'da Cloud projenizi açma

Açık değilse kullanmayı düşündüğünüz Cloud projesini açın şu örneği inceleyelim:

  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.

Google Books API'yi açma

Bu eklenti, Google Books API'ye bağlanır. Google API'lerini kullanmadan önce bir Google Cloud projesinde etkinleştirmeniz gerekir. Tek bir Google Cloud projesinde bir veya daha fazla API'yi etkinleştirebilirsiniz.

Bu eklenti, bu seçeneği belirleyebilirsiniz. OAuth izin ekranını yapılandırmak Google, yayınlayabilmeniz için uygulamanızı kullanıcılara gösterir ve kaydeder daha sonra.

  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.

Google Books API için API anahtarı alma

  1. Google Cloud Console'a gidin. Faturalandırmanın etkin olduğu projenizin açık olduğundan emin olun.
  2. Google Cloud konsolunda Menü'ye gidin > API'lar ve Hizmetler > Kimlik bilgileri.

    Kimlik bilgilerine git

  3. Kimlik bilgileri oluştur > API anahtarı'nı tıklayın.

  4. Daha sonraki bir adımda kullanmak üzere API anahtarınızı not edin.

Komut dosyasını ayarlama

Aşağıdaki bölümlerde komut dosyası, ekleyebilirsiniz.

Apps Komut Dosyası projesini oluşturma

  1. Google Kitaplar'daki bağlantıları önizleme'yi açmak için aşağıdaki düğmeyi tıklayın Apps Komut Dosyası projesi.
    Projeyi açın
  2. Genel Bakış'ı tıklayın.
  3. Genel bakış sayfasında Kopya oluşturma simgesi Kopya oluştur'u tıklayın.
  4. Apps Komut Dosyası projesi için oluşturduğunuz kopyada Code.gs adresine gidin. dosyasını yükleyin ve YOUR_API_KEY dosyasını, API anahtarında oluşturduğunuz API anahtarıyla değiştirin. önceki bölüm.

Cloud projesi numarasını kopyalayın

  1. Google Cloud konsolunda Menü'ye gidin > IAM ve Yönetici > Ayarlar'a dokunun.

    IAM ve Yönetici Ayarları

  2. Proje numarası alanına değeri kopyalayın.

Apps Komut Dosyası projesinin Cloud projesini ayarlayın

  1. Apps Komut Dosyası projenizde, Proje ayarları simgesi öğesini tıklayın Proje Ayarları.
  2. Google Cloud Platform (GCP) Project bölümünde Projeyi değiştir seçeneğini tıklayın.
  3. GCP proje numarası alanına Google Cloud proje numarasını yapıştırın.
  4. Proje ayarla'yı tıklayın.

Eklentiyi test etme

Aşağıdaki bölümlerde, oluşturduğunuz eklenti test edilmektedir.

Test dağıtımı yükleme

  1. Apps Komut Dosyası projenizde Düzenleyici'yi tıklayın.
  2. YOUR_API_KEY kısmını Google Books API için API anahtarıyla değiştirin. geri dönüp bakarsınız.
  3. Dağıt > Dağıtımları test et'i tıklayın.
  4. Yükle > Bitti'yi tıklayın.
  1. Şu adreste bir Google Dokümanlar dokümanı oluştur: docs.new.
  2. Aşağıdaki URL'yi dokümana yapıştırın ve sekme tuşuna basarak URL'yi akıllı çipe dönüştürün: https://www.google.com/books/edition/Software_Engineering_at_Google/V3TTDwAAQBAJ
  3. İşaretçiyi akıllı çipin üzerinde tutun ve istendiğinde şuna erişimi yetkilendirin: ve uygulamayı yürütür. Önizleme kartı bilgileri girin.

Aşağıdaki resimde bağlantı önizlemesi gösterilmektedir:

Google'da Yazılım Mühendisliği adlı kitabın bağlantı önizlemesi.

Kodu inceleyin

Bunun için Apps Komut Dosyası kodunu incelemek üzere eklentisinde, Kaynak kodunu görüntüle öğesini tıklayarak bölüm:

Kaynak kodu göster

appsscript.json

solutions/add-on/book-smartchip/appsscript.json
{
  "timeZone": "America/Los_Angeles",
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "oauthScopes": [
    "https://www.googleapis.com/auth/workspace.linkpreview",
    "https://www.googleapis.com/auth/script.external_request"
  ],
  "urlFetchWhitelist": [
    "https://www.googleapis.com/books/v1/volumes/"
  ],
  "addOns": {
    "common": {
      "name": "Preview Books Add-on",
      "logoUrl": "https://developers.google.com/workspace/add-ons/images/library-icon.png",
      "layoutProperties": {
        "primaryColor": "#dd4b39"
      }
    },
    "docs": {
      "linkPreviewTriggers": [
        {
          "runFunction": "bookLinkPreview",
          "patterns": [
            {
              "hostPattern": "*.google.*",
              "pathPrefix": "books"
            },
            {
              "hostPattern": "*.google.*",
              "pathPrefix": "books/edition"
            }
          ],
          "labelText": "Book",
          "logoUrl": "https://developers.google.com/workspace/add-ons/images/book-icon.png",
          "localizedLabelText": {
            "es": "Libros"
          }
        }
      ]
    }
  }
}

Code.gs

solutions/add-on/book-smartchip/Code.js
function getBook(id) {
  const apiKey = 'YOUR_API_KEY'; // Replace with your API key
  const apiEndpoint = `https://www.googleapis.com/books/v1/volumes/${id}?key=${apiKey}&country=US`;
  const response = UrlFetchApp.fetch(apiEndpoint);
  return JSON.parse(response);
}

function bookLinkPreview(event) {
 if (event.docs.matchedUrl.url) {
    const segments = event.docs.matchedUrl.url.split('/');
    const volumeID = segments[segments.length - 1];

    const bookData = getBook(volumeID);
    const bookTitle = bookData.volumeInfo.title;
    const bookDescription = bookData.volumeInfo.description;
    const bookImage = bookData.volumeInfo.imageLinks.small;
    const bookAuthors = bookData.volumeInfo.authors;
    const bookPageCount = bookData.volumeInfo.pageCount;

    const previewHeader = CardService.newCardHeader()
      .setSubtitle('By ' + bookAuthors)
      .setTitle(bookTitle);

    const previewPages = CardService.newDecoratedText()
      .setTopLabel('Page count')
      .setText(bookPageCount);

    const previewDescription = CardService.newDecoratedText()
      .setTopLabel('About this book')
      .setText(bookDescription).setWrapText(true);

    const previewImage = CardService.newImage()
      .setAltText('Image of book cover')
      .setImageUrl(bookImage);

    const buttonBook = CardService.newTextButton()
      .setText('View book')
      .setOpenLink(CardService.newOpenLink()
        .setUrl(event.docs.matchedUrl.url));

    const cardSectionBook = CardService.newCardSection()
      .addWidget(previewImage)
      .addWidget(previewPages)
      .addWidget(CardService.newDivider())
      .addWidget(previewDescription)
      .addWidget(buttonBook);

    return CardService.newCardBuilder()
    .setHeader(previewHeader)
    .addSection(cardSectionBook)
    .build();
  }
}