تتيح "العروض التقديمية من Google" للمستخدمين التعاون من خلال إضافة تعليقات على الشرائح وعناصر الصفحة.
يوضّح هذا المستند كيف يمكنك استخدام Google Slides 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)
في الردّ، يتم عرض التعليقات في مكانَين:
- تمثّل هذه السمة مصفوفة
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. يجب تقديم محتوى نص التعليق وموقع علامة الارتساء. يجب أن يحدّد موقع العنصر الثابت أحد الخيارات التالية:
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."
}
}
]
}
حذف التعليقات والردود
لحذف التعليقات والردود، يتوفّر لك خياران:
حذف سلسلة محادثات: لإزالة سلسلة محادثات بأكملها
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: تعذّر حفظ جميع التعديلات المطلوبة على التعليقات، على الرغم من أنّه قد تم حفظ تغييرات أخرى على العرض التقديمي.