Temel yazma

Google Slaytlar API'si, sunu sayfalarına öğe eklemenize ve mevcut öğeleri değiştirmenize olanak tanır. Bu sayfadaki örnekler, presentations.batchUpdate yöntemi kullanılarak genel okuma işlemlerinin nasıl gerçekleştirileceğini gösterir.

Bu örneklerde aşağıdaki değişkenler kullanılmaktadır:

  • PRESENTATION_ID: Sunu kimliğini sağladığınız yeri belirtir. Bu kimliğin değerini sunu URL'sinden bulabilirsiniz.
  • PAGE_ID: Sayfa nesnesi kimliğini sağladığınız yeri gösterir. Bunun değerini URL'den veya API okuma isteği kullanarak alabilirsiniz.
  • PAGE_ELEMENT_ID: Sayfa öğesi nesne kimliğini sağladığınız yeri belirtir. Oluşturduğunuz öğeler için bu kimliği belirtebilir (bazı kısıtlamalarla birlikte) veya Slides API'nin otomatik olarak kimlik oluşturmasına izin verebilirsiniz. Öğe kimlikleri, API okuma isteği aracılığıyla alınabilir.

Bu örnekler, dilden bağımsız olarak HTTP istekleri olarak sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde toplu güncelleme yapmayı öğrenmek için Şekil ve metin ekleme bölümüne bakın.

Slayta metin kutusu ekleme

Aşağıdaki presentations.batchUpdate kod örneğinde, PAGE_ID tarafından belirtilen bir slayta yeni bir metin kutusu ("Eklediğim Metin Kutusu" dizesini içerir) eklemek için CreateShapeRequest yönteminin nasıl kullanılacağı gösterilmektedir. İstek gövdesinde, biri metin kutusu şeklini (belirli bir boyut ve konumla) oluşturmak, diğeri de metni eklemek için olmak üzere iki istek belirtilir.

İlk istek, metin kutusu için kullanılacak nesne kimliğini belirtir. Bu, ikinci isteğin bunu aynı API çağrısında kullanmasına olanak tanıyarak ek yükü azaltır.

Slayta metin kutusu eklemek için kullanılacak istek protokolü aşağıda verilmiştir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createShape": {
        "objectId": PAGE_ELEMENT_ID,
        "shapeType": "TEXT_BOX",
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 150,
              "unit": "PT"
            },
            "height": {
              "magnitude": 50,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    },
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "My Added Text Box",
        "insertionIndex": 0
      }
    }
  ]
}

Slayta resim ekleme

Aşağıdaki presentations.batchUpdate kod örneğinde, PAGE_ID tarafından belirtilen bir slayta resim eklemek için CreateImageRequest yönteminin nasıl kullanılacağı gösterilmektedir. API, görüntüyü IMAGE_URL kullanarak alır. Bu istek ayrıca slayttaki resmi ölçeklendirir ve konumlandırır.

Slayta resim eklemek için kullanılacak istek protokolü aşağıda verilmiştir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": IMAGE_URL,
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 30,
              "unit": "PT"
            },
            "height": {
              "magnitude": 30,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    }
  ]
}

Bir sayfa veya sayfa öğesini silme

Aşağıdaki presentations.batchUpdate kod örneğinde, PAGE_ELEMENT_ID tarafından belirtilen sayfa öğesini ve PAGE_ID tarafından belirtilen slaytı iki ayrı istek kullanılarak silmek için DeleteObjectRequest yönteminin nasıl kullanılacağı gösterilmektedir.

Aşağıda, bir sayfa veya sayfa öğesini silmek için kullanılan istek protokolü verilmiştir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteObject": {
        "objectId": PAGE_ELEMENT_ID
      },
      "deleteObject": {
        "objectId":  PAGE_ID
      }
    }
  ]
}

Belirtilen şekildeki metni düzenleme

Aşağıdaki presentations.batchUpdate kod örneğinde, PAGE_ELEMENT_ID tarafından belirtilen şekilde bulunan metnin bir bölümünü değiştirmek için DeleteTextRequest yönteminin nasıl kullanılacağı gösterilmektedir. Bunu yapmak için önce sıfır tabanlı startIndex kullanarak metni silin ve ardından bu konuma yeni metin ekleyin. Bu örnekte, orijinal metin dizesi olan "Şekil Metnim: ????", "Şekil Metnim: Yamuk" ile değiştirilir.

Bu istek yalnızca belirtilen bir şekildeki metni etkiler. Sununun her yerindeki metni değiştirmek için ReplaceAllTextRequest yöntemini kullanın.

Aşağıda, belirtilen bir şekilde metni düzenlemek için kullanılan istek protokolü verilmiştir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteText": {
        "objectId": PAGE_ELEMENT_ID,
        "textRange": {
          "type": "FROM_START_INDEX",
          "startIndex": 15
        }
      }
    },
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "Trapezoid",
        "insertionIndex": 15
      }
    }
  ]
}

Şekil etiketini resimle değiştirme

Etiketler, "hesap sahibi-adı" gibi benzersiz bir dize adına sahip metin kutuları veya şekillerdir.

Aşağıdaki presentations.batchUpdate kod örneğinde, bir şekil etiketinin tek bir örneğini bir resimle değiştirmek, aynı konumu korumak ve resmin en boy oranını korurken etiketi etiketin boyutuna sığacak şekilde ölçeklendirmek için CreateImageRequest yönteminin nasıl kullanılacağı gösterilmektedir.

İstek, bir resmi başka bir resimle değiştirmek için de kullanılabilir. İstek, yeni resmin eklenmesi ve ardından etiketin silinmesinden oluşur.

CreateImageRequest yöntemi yalnızca belirtilen bir şeklin yerine geçer. Sununun her yerindeki etiket şekillerini değiştirmek için ReplaceAllShapesWithImageRequest yöntemi kullanın.

Şekil etiketi aşağıdaki PageElement özelliklerine sahiptir (presentations.pages.get isteği kullanılarak bulunabilir):

{
  "objectId": PAGE_ELEMENT_ID,
  "size": {
    "width": {
      "magnitude": 3000000,
      "unit": "EMU"
    },
    "height": {
      "magnitude": 3000000,
      "unit": "EMU"
    }
  },
  "transform": {
    "scaleX": 1.13,
    "scaleY": 0.62,
    "translateX": 4800000,
    "translateY":  450000,
    "unit": "EMU"
  },
  "shape": {
    "shapeType": "RECTANGLE"
  }
}

Şekil, PAGE_ID tarafından belirtilen slaytta bulunur. Şeklin yerini alacak resmi belirtmek için API, resmi IMAGE_URL kullanarak alır. CreateImageRequest yöntemi, etiket boyutuyla sınırlandırırken resmin en boy oranını korumak için hem resim boyutunu etiket boyutu ve ölçeğinin ürününe, resim ölçeği ise 1 değerine ayarlar. Daha fazla bilgi için En boy oranını koruma bölümüne bakın.

Aşağıda, bir şekil etiketini resimle değiştirmek için gereken istek protokolü gösterilmektedir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": IMAGE_URL,
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 3000000 * 1.13,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 3000000 * 0.62,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 4800000,
            "translateY": 450000,
            "unit": "PT"
          }
        }
      }
    },
    {
      "deleteObject": {
        "objectId": PAGE_ELEMENT_ID
      }
    }
  ]
}