การเขียนพื้นฐาน

Google Slides API ช่วยให้คุณเพิ่มและแก้ไของค์ประกอบในหน้างานนำเสนอได้ ตัวอย่างในหน้านี้แสดงวิธีดำเนินการอ่านทั่วไปโดยใช้เมธอด presentations.batchUpdate

ตัวอย่างเหล่านี้ใช้ตัวแปรต่อไปนี้

ตัวอย่างเหล่านี้จะแสดงเป็นคำขอ HTTP ให้ใช้ภาษาเป็นกลาง หากต้องการดูวิธีใช้การอัปเดตเป็นกลุ่มในภาษาต่างๆ โดยใช้ไลบรารีของไคลเอ็นต์ Google API โปรดดูเพิ่มรูปร่างและข้อความ

เพิ่มกล่องข้อความในสไลด์

ตัวอย่างโค้ด presentations.batchUpdate ต่อไปนี้จะแสดงวิธีใช้ CreateShapeRequest วิธีเพิ่มกล่องข้อความใหม่ (ที่มีสตริง "กล่องข้อความที่ฉันเพิ่ม") ใน สไลด์ที่ระบุโดย PAGE_ID มีการระบุคำขอ 2 รายการในเนื้อหาคำขอ โดยคำขอหนึ่งเพื่อสร้างรูปร่างกล่องข้อความ (ระบุขนาดและตำแหน่งที่กำหนด) และคำขอที่สองสำหรับแทรกข้อความ

คำขอแรกระบุรหัสออบเจ็กต์ที่จะใช้สำหรับกล่องข้อความ ซึ่งช่วยให้คำขอที่ 2 ใช้ได้ในการเรียก API เดียวกัน ซึ่งช่วยลดค่าใช้จ่าย

ต่อไปนี้เป็นโปรโตคอลคำขอเพื่อเพิ่มกล่องข้อความในสไลด์

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
      }
    }
  ]
}

เพิ่มรูปภาพลงในสไลด์

ตัวอย่างโค้ด presentations.batchUpdate ต่อไปนี้จะแสดงวิธีใช้ CreateImageRequest เพื่อเพิ่มรูปภาพในสไลด์ที่ PAGE_ID ระบุไว้ API จะเรียกรูปภาพโดยใช้ IMAGE_URL คำขอนี้จะปรับสัดส่วนและจัดตำแหน่งรูปภาพในสไลด์ด้วย

โปรโตคอลคำขอเพิ่มรูปภาพลงในสไลด์มีดังนี้

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"
          }
        }
      }
    }
  ]
}

ลบหน้าหรือองค์ประกอบของหน้า

ตัวอย่างโค้ด presentations.batchUpdate ต่อไปนี้จะแสดงวิธีใช้ DeleteObjectRequest ในการลบองค์ประกอบของหน้าที่ระบุโดย PAGE_ELEMENT_ID และสไลด์ที่ระบุโดย PAGE_ID โดยใช้คำขอ 2 รายการแยกกัน

โปรโตคอลคำขอลบองค์ประกอบหน้าเว็บหรือองค์ประกอบหน้ามีดังนี้

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

แก้ไขข้อความในรูปร่างที่ระบุ

ตัวอย่างโค้ด presentations.batchUpdate ต่อไปนี้จะแสดงวิธีใช้เมธอด DeleteTextRequest เพื่อแทนที่ข้อความบางส่วนที่แสดงในรูปร่างที่ระบุโดยPAGE_ELEMENT_ID หากต้องการทำเช่นนี้ ให้ลบข้อความโดยใช้ startIndex แบบเลข 0 แล้วจึงแทรกข้อความใหม่ในตำแหน่งนั้น ในตัวอย่างนี้ สตริงข้อความต้นฉบับ "ข้อความรูปร่างของฉัน: ????" จะถูกแทนที่ด้วย "ข้อความรูปร่างของฉัน: สี่เหลี่ยมคางหมู"

คำขอนี้จะมีผลกับข้อความในรูปร่างที่ระบุเท่านั้น หากต้องการแทนที่ข้อความทุกที่ภายในงานนำเสนอ ให้ใช้เมธอด ReplaceAllTextRequest

โปรโตคอลคำขอเพื่อแก้ไขข้อความในรูปร่างที่ระบุมีดังนี้

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
      }
    }
  ]
}

แทนที่แท็กรูปร่างด้วยรูปภาพ

แท็กคือกล่องข้อความหรือรูปร่างที่มีชื่อสตริงไม่ซ้ำกัน เช่น "ชื่อเจ้าของบัญชี"

ตัวอย่างโค้ด presentations.batchUpdate ต่อไปนี้จะแสดงวิธีใช้ CreateImageRequest เพื่อแทนที่แท็กรูปร่าง 1 อินสแตนซ์ด้วยรูปภาพ รักษาตำแหน่งเดิมไว้ และปรับขนาดให้พอดีกับขนาดของแท็ก ขณะที่รักษาอัตราส่วนของรูปภาพ

นอกจากนี้ยังใช้แทนที่รูปภาพหนึ่งด้วยอีกรูปหนึ่งได้ด้วย โดยคำขอประกอบไปด้วยการเพิ่มรูปภาพใหม่แล้วลบแท็ก

เมธอด CreateImageRequest จะแทนที่รูปร่างที่ระบุเท่านั้น หากต้องการแทนที่รูปร่างแท็กในทุกตำแหน่งภายในงานนำเสนอ ให้ใช้เมธอด ReplaceAllShapesWithImageRequest

แท็กรูปร่างมีพร็อพเพอร์ตี้ PageElement ต่อไปนี้ (ซึ่งพบได้โดยใช้คำขอ presentations.pages.get)

{
  "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"
  }
}

รูปร่างอยู่ในสไลด์ที่ระบุโดย PAGE_ID หากต้องการระบุรูปภาพที่แทนที่รูปร่าง API จะดึงรูปภาพโดยใช้ IMAGE_URL หากต้องการรักษาอัตราส่วนของรูปภาพไว้โดยจำกัดขนาดของแท็ก เมธอด CreateImageRequest จะตั้งค่าทั้งขนาดรูปภาพเป็นผลคูณของขนาดและมาตราส่วนแท็ก และตัวคูณมาตราส่วนรูปภาพเป็น 1 ดูข้อมูลเพิ่มเติมได้ที่รักษาอัตราส่วน

ต่อไปนี้คือโปรโตคอลคำขอให้แทนที่แท็กรูปร่างด้วยรูปภาพ

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
      }
    }
  ]
}