Google สไลด์ช่วยให้ผู้ใช้ทำงานร่วมกันได้โดยการแสดงความคิดเห็นในสไลด์และองค์ประกอบของหน้า
เอกสารนี้แสดงวิธีใช้ Google สไลด์ API เพื่ออ่าน สร้าง ตอบ อัปเดต หรือลบความคิดเห็นแบบเป็นโปรแกรม
อ่านความคิดเห็น
เมื่อใช้เมธอด
get ในแหล่งข้อมูล
presentations
เพื่อดึงข้อมูลงานนำเสนอ ระบบจะละเว้นเธรดความคิดเห็นและจุดยึดโดยค่าเริ่มต้น
หากต้องการรวมความคิดเห็นไว้ในคำตอบ ให้ตั้งค่าพารามิเตอร์การค้นหา
commentsViewMode
เป็น
COMMENTS_VIEW_MODE_INCLUDED
นอกจากนี้ หากผู้ใช้ที่เรียกใช้มีสิทธิ์เข้าถึงความคิดเห็นในไฟล์ การตั้งค่าพารามิเตอร์การค้นหาเป็น COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS จะแสดงความคิดเห็นด้วย
ทั้งฟิลด์
comments
และ
commentAnchors
จะแสดงในคำตอบ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้คำขอ get ที่ดึงข้อมูล
เธรดความคิดเห็นและจุดยึดจากงานนำเสนอ
GET https://slides.googleapis.com/v1/presentations/PRESENTATION_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=presentationId,comments,slides(objectId,commentAnchors)
ในการตอบกลับ ระบบจะแสดงความคิดเห็นใน 2 ตำแหน่งต่อไปนี้
- อาร์เรย์
commentsทั่วโลกที่มีออบเจ็กต์CommentThread - อาร์เรย์
commentAnchorsที่มีออบเจ็กต์CommentAnchorซึ่งเชื่อมโยงรหัสจุดยึดความคิดเห็นกับตำแหน่งของหน้าเว็บหรือองค์ประกอบของหน้าเว็บ (จุดยึดออบเจ็กต์)
อ่านความคิดเห็นในหน้าเว็บที่เฉพาะเจาะจง
นอกจากนี้ คุณยังเรียกข้อมูลความคิดเห็นและจุดยึดสำหรับหน้าเว็บที่เฉพาะเจาะจงได้โดยใช้เมธอด
pages.get ในแหล่งข้อมูล
presentations.pages
ตั้งค่าพารามิเตอร์การค้นหา commentsViewMode เพื่อรวมความคิดเห็นสำหรับเป้าหมายหน้าเว็บที่เฉพาะเจาะจง
GET https://slides.googleapis.com/v1/presentations/PRESENTATION_ID/pages/PAGE_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=objectId,comments,commentAnchors
ตัวอย่างการตอบกลับ
ตัวอย่างการตอบกลับ JSON ต่อไปนี้แสดงชุดความคิดเห็นที่ยึดกับช่วงข้อความภายในรูปร่างในหน้าสไลด์
{
"presentationId": "PRESENTATION_ID",
"slides": [
{
"objectId": "SLIDE_PAGE_ID",
"commentAnchors": [
{
"anchorId": "ANCHOR_ID",
"objectAnchors": [
{
"objectId": "SHAPE_OBJECT_ID",
"shapeTextAnchors": {
"ranges": [
{
"startIndex": 0,
"endIndex": 12
}
]
}
}
]
}
]
}
],
"comments": [
{
"commentId": "COMMENT_ID",
"anchorId": "ANCHOR_ID",
"headPost": {
"postId": "POST_ID",
"content": "This is a comment thread head post.",
"contentHtml": "The content of the post as HTML.",
"author": {
"displayName": "DISPLAY_NAME",
"me": true,
"user": "users/USER"
},
"createTime": "2026-07-01T10:13:12Z",
"updateTime": "2026-07-01T10:13:12Z"
},
"replies": [
{
"postId": "REPLY_POST_ID",
"content": "This is a reply to the comment.",
"author": {
"displayName": "DISPLAY_NAME",
"me": false
},
"createTime": "2026-07-01T10:15:00Z",
"updateTime": "2026-07-01T10:15:00Z"
}
],
"status": "OPEN"
}
],
"commentsViewMode": "COMMENTS_VIEW_MODE_INCLUDED"
}
สร้างและจัดการความคิดเห็น
คุณสามารถเพิ่ม แก้ไข และลบความคิดเห็นหรือการตอบกลับโดยใช้โปรแกรมด้วยเมธอด
batchUpdate
ในแหล่งข้อมูล
presentations
เมื่อทำการอัปเดตแบบเป็นชุดที่เกี่ยวข้องกับความคิดเห็น คุณควรตรวจสอบ ความล้มเหลวบางส่วนที่อาจเกิดขึ้น ดูข้อมูลเพิ่มเติมได้ที่สถานะการอัปเดตความคิดเห็น
แทรกความคิดเห็น
หากต้องการแทรกชุดข้อความความคิดเห็นลงในงานนำเสนอ ให้ใช้วัตถุ
InsertCommentRequest
คุณต้องระบุเนื้อหาข้อความของความคิดเห็นและตำแหน่งของ Anchor ตำแหน่งของ
Anchor ต้องระบุอย่างใดอย่างหนึ่งต่อไปนี้
objectId: รหัสออบเจ็กต์ของหน้าสไลด์หรือองค์ประกอบของหน้า (เช่น รูปร่างหรือตาราง) เพื่อยึดความคิดเห็นshapeTextAnchor: ยึดความคิดเห็นกับช่วงข้อความในรูปร่างtableCellTextAnchor: ยึดความคิดเห็นกับช่วงข้อความในเซลล์ตารางtableAnchor: ยึดความคิดเห็นไว้กับช่วงของเซลล์ในตาราง
ตัวอย่าง JSON ต่อไปนี้แสดงวิธีเพิ่มชุดความคิดเห็นที่ยึดกับหน้าสไลด์
{
"requests": [
{
"insertComment": {
"content": "This is a comment added using the API.",
"objectId": "SLIDE_PAGE_ID"
}
}
]
}
คุณมอบหมายความคิดเห็นให้ผู้ใช้ที่เฉพาะเจาะจงได้โดยระบุอีเมลของผู้ใช้ในฟิลด์
assigneeEmailAddress
{
"requests": [
{
"insertComment": {
"content": "Please review this slide.",
"assigneeEmailAddress": "ASSIGNEE_EMAIL_ADDRESS",
"objectId": "SLIDE_PAGE_ID"
}
}
]
}
ตอบกลับหรือดำเนินการ
หากต้องการตอบกลับชุดข้อความความคิดเห็น แก้ไข หรือเปิดชุดข้อความอีกครั้ง ให้ใช้วัตถุ
AddCommentReplyRequest
คุณต้องระบุ
commentId
และ
post
ซึ่งการตอบกลับจะแสดงด้วยออบเจ็กต์
Post
Post ออบเจ็กต์มีcontentการตอบกลับ และสามารถระบุcommentAction
(รวมถึงการดำเนินการเพื่อRESOLVEหรือREOPENชุดความคิดเห็น) ได้ โดยแสดงด้วยออบเจ็กต์
CommentActionType
นอกจากนี้ คุณยังกำหนดชุดข้อความความคิดเห็นใหม่ได้โดยระบุ assigneeEmail ใหม่ในออบเจ็กต์ Post
ตัวอย่าง JSON ต่อไปนี้แสดงวิธีตอบกลับเธรดความคิดเห็นที่มีอยู่
{
"requests": [
{
"addCommentReply": {
"commentId": "COMMENT_ID",
"post": {
"content": "Replying to the comment thread."
}
}
}
]
}
ตัวอย่าง JSON ต่อไปนี้แสดงวิธีแก้ไขเธรดความคิดเห็น
{
"requests": [
{
"addCommentReply": {
"commentId": "COMMENT_ID",
"post": {
"commentAction": "RESOLVE"
}
}
}
]
}
แก้ไขโพสต์
หากต้องการแก้ไขเนื้อหาข้อความของโพสต์ที่คุณเขียน ให้ใช้ออบเจ็กต์
UpdateCommentPostRequest
คุณต้องระบุ commentId ของเธรด postId ของโพสต์
ที่ต้องการแก้ไข และข้อความธรรมดาใหม่
content
ตัวอย่าง JSON ต่อไปนี้แสดงวิธีแก้ไขโพสต์
{
"requests": [
{
"updateCommentPost": {
"commentId": "COMMENT_ID",
"postId": "POST_ID",
"content": "This is the updated comment text."
}
}
]
}
ลบความคิดเห็นและการตอบกลับ
คุณมี 2 ตัวเลือกในการลบความคิดเห็นและการตอบกลับ
ลบชุดข้อความของความคิดเห็น: หากต้องการนำ
CommentThreadออกทั้งหมด ให้ใช้วัตถุDeleteCommentRequestคุณจะลบชุดความคิดเห็นได้ก็ต่อเมื่อเป็นผู้เขียนheadPostของชุดความคิดเห็นนั้นในออบเจ็กต์CommentThreadลบการตอบ: หากต้องการลบการตอบที่เฉพาะเจาะจง
PostจากCommentThreadให้ใช้DeleteCommentReplyRequestออบเจ็กต์ คุณจะลบได้เฉพาะคำตอบที่คุณเขียนเท่านั้น คุณไม่สามารถลบโพสต์ตอบกลับที่มีcommentActionหรือassigneeEmail
ตัวอย่าง JSON ต่อไปนี้แสดงวิธีลบเธรดความคิดเห็น
{
"requests": [
{
"deleteComment": {
"commentId": "COMMENT_ID"
}
}
]
}
สถานะการอัปเดตความคิดเห็น
คำขอที่ต้องบันทึกชุดความคิดเห็น (เช่น การแทรกความคิดเห็นหรือ การเพิ่มคำตอบ) อาจทำงานไม่สำเร็จบางส่วน ในกรณีเหล่านี้ การเปลี่ยนแปลงโมเดลการนำเสนอ (เช่น การอัปเดตเนื้อหาหรือพื้นหลังของสไลด์) อาจ ได้รับการยืนยันสำเร็จ แต่ความคิดเห็นที่เชื่อมโยงอาจบันทึกไม่สำเร็จ
คุณตรวจสอบได้ว่าการอัปเดตความคิดเห็นมีผลสำเร็จหรือไม่โดยดูฟิลด์
commentUpdateState
ในเนื้อหาการตอบกลับของเมธอด presentations.batchUpdate ฟิลด์
แสดงโดยออบเจ็กต์
CommentUpdateState
ระบบจะแสดงสถานะต่อไปนี้ใน CommentUpdateState
NO_UPDATES_REQUESTED: ไม่มีการขออัปเดตความคิดเห็นในการดำเนินการแบบกลุ่มALL_SAVED: เราได้อัปเดตความคิดเห็นทั้งหมดที่คุณขอแล้วALL_FAILED_UNKNOWN_REASON: การอัปเดตความคิดเห็นที่ขอทั้งหมดบันทึกไม่สำเร็จ แม้ว่าการเปลี่ยนแปลงอื่นๆ ในงานนำเสนออาจได้รับการบันทึกแล้วก็ตาม