Temel yazma

Google Slaytlar API'sı 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 nereden sağladığınızı belirtir. Bu kimliğin değerini sunu URL'sinden bulabilirsiniz.
  • PAGE_ID - Sayfa nesne kimliğini nereden sağladığınızı belirtir. Bunun değerini URL'den veya bir API okuma isteği kullanarak alabilirsiniz.
  • PAGE_ELEMENT_ID - Sayfa öğesi nesne kimliğini nereden sağladığınızı belirtir. Oluşturduğunuz öğeler için bu kimliği belirtebilir (bazı kısıtlamalarla) veya Slaytlar 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 olmaları için HTTP istekleri olarak sunulur. Google API istemci kitaplıklarını kullanarak toplu güncellemenin farklı dillerde nasıl uygulanacağını öğ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 ile belirtilen slayda yeni bir metin kutusu ("Eklenen Metin Kutusu" 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 ise metin kutusuna metin 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 iş yükünü azaltır.

Aşağıda, slayta metin kutusu eklemek için gereken istek protokolü 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 ile belirtilen slayta resim eklemek için CreateImageRequest yönteminin nasıl kullanılacağı gösterilmektedir. API, resmi IMAGE_URL kullanarak alır. Bu istek, slayttaki resmin ölçeğini ve konumunu da ölçeklendirir.

Aşağıda, slayta resim eklemek için gereken istek protokolü 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"
          }
        }
      }
    }
  ]
}

Sayfayı veya sayfa öğesini silme

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

Aşağıda, bir sayfayı veya sayfa öğesini silmek için gereken 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, metnin bir bölümünü PAGE_ELEMENT_ID ile belirtilen şekilde 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, "Şekil Metnim: ????" orijinal metin dizesi "Şekilim Metin: Yamuk" ile değiştirilmiştir.

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

Aşağıda, belirtilen bir şekildeki 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 bir 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 için CreateImageRequest yönteminin nasıl kullanılacağı gösterilmektedir. Bu yöntem, aynı konumu koruyup resmin en boy oranını korurken etiketin boyutuna uyacak şekilde ölçeklendirilmesini de sağlar.

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

CreateImageRequest yöntemi yalnızca belirtilen şeklin yerini alır. Sununun her yerinde 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 bulunuyor. API, şeklin yerini alan resmi belirtmek için resmi IMAGE_URL özelliğini kullanarak alır. CreateImageRequest yöntemi, resim en boy oranını etiketin boyutuyla sınırlandırırken korumak için hem resim boyutunu etiket boyutu ve ölçeğinin çarpımına göre ayarlar hem de resim ölçeğini 1 olarak belirler. Daha fazla bilgi için En boy oranını koruma bölümünü inceleyin.

Aşağıda, bir şekil etiketini resimle değiştirmek için gereken istek protokolü 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
      }
    }
  ]
}