Temel yazma

Google Slaytlar API, sunu sayfalarına öğe eklemenize ve bunları 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 sununun URL'sinden öğrenebilirsiniz.
  • PAGE_ID: Sayfa nesnesi kimliğini nerede sağladığınızı belirtir. 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) veya Slaytlar API'nin otomatik olarak bir kimlik oluşturmasına izin verebilirsiniz. Öğe kimlikleri, API okuma isteği aracılığıyla alınabilir.

Bu örnekler, dil açısından tarafsız olması için HTTP istekleri olarak sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde toplu güncelleme yapmayı öğrenmek için Şekil ve metin ekleme başlıklı makaleyi inceleyin.

Slayta metin kutusu ekleme

Aşağıdaki presentations.batchUpdate kod örneğinde, PAGE_ID tarafından belirtilen bir slayta yeni bir metin kutusu ("Eklenen Metin Kutum" dizesini içeren) 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.

Bir slayta metin kutusu ekleme 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, resmin slaytta ölçeklendirilmesini ve konumlandırılmasını da sağlar.

Slayta resim eklemek için kullanılan 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"
          }
        }
      }
    }
  ]
}

Sayfa veya sayfa öğesi silme

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

Bir sayfayı veya sayfa öğesini silme istek protokolü aşağıda 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 "Şekle Ait Metnim: ????", "Şekle Ait Metnim: Trapez" ile değiştirilmiştir.

Bu istek yalnızca belirli bir şekildeki metni etkiler. Bir sunudaki metni her yerde 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 resimle değiştirmek için CreateImageRequest yönteminin nasıl kullanılacağı gösterilmektedir. Bu yöntemde, aynı konum korunur ve resim, etiketin boyutuna sığacak şekilde ölçeklendirilirken resmin en boy oranı korunur.

İstek, bir resmi başka bir resimle değiştirmek için de kullanılabilir. İstek, yeni resmi ekleyip etiketi silmekten oluşur.

CreateImageRequest yöntemi yalnızca belirtilen bir şekli değiştirir. Etiket şekillerini bir sunumdaki her yerde değiştirmek için ReplaceAllShapesWithImageRequest yöntemini 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 ile belirtilen slaytta bulunur. API, şeklin yerini alacak resmi belirtmek için IMAGE_URL parametresini kullanarak resmi alır. CreateImageRequest yöntemi, resim en boy oranını etiket boyutuyla sınırlandırırken korumak için hem resim boyutunu etiket boyutu ve ölçeğinin çarpımına hem de resim ölçek faktörlerini 1 olarak ayarlar. Daha fazla bilgi için En boy oranını koruma başlıklı makaleyi inceleyin.

Bir şekil etiketini resimle değiştirmek için 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": 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
      }
    }
  ]
}