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

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

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

  • PRESENTATION_ID - ระบุตำแหน่งที่คุณระบุรหัสงานนำเสนอ คุณสามารถดูค่าของรหัสนี้ได้จาก URL ของงานนำเสนอ
  • PAGE_ID - ระบุตําแหน่งที่คุณระบุรหัสออบเจ็กต์หน้าเว็บ คุณสามารถดึงค่านี้ได้จาก URL หรือใช้คําขออ่าน API
  • PAGE_ELEMENT_ID - ระบุตำแหน่งที่คุณระบุรหัสออบเจ็กต์องค์ประกอบหน้าเว็บ คุณสามารถระบุรหัสนี้สำหรับองค์ประกอบที่คุณสร้าง (โดยมีข้อจำกัดบางอย่าง) หรืออนุญาตให้ Slides API สร้างรหัสโดยอัตโนมัติ รหัสองค์ประกอบจะดึงข้อมูลได้ผ่านคําขออ่าน API

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

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

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

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

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

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

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

เมธอด 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
      }
    }
  ]
}