Yorumları yönetme

Google Slaytlar, kullanıcıların slaytlara ve sayfa öğelerine yorum ekleyerek ortak çalışmasına olanak tanır.

Bu belgede, yorumları programatik olarak okumak, oluşturmak, yanıtlamak, güncellemek veya silmek için Google Slaytlar API'sini nasıl kullanabileceğiniz gösterilmektedir.

Yorumları okuma

Bir sunuyu almak için presentations kaynağında get yöntemini kullandığınızda yorum dizileri ve bağlantılar varsayılan olarak atlanır.

Yanıtın yorumları içermesi için commentsViewMode sorgu parametresini COMMENTS_VIEW_MODE_INCLUDED olarak ayarlayın. Ayrıca, arayan kullanıcının dosyada yorum erişimi varsa sorgu parametresinin COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS olarak ayarlanması da yorumları döndürür.

Yanıt, hem comments hem de commentAnchors alanlarını döndürür.

Aşağıdaki kod örneğinde, bir sunudan yorum dizilerini ve bunların bağlantılarını alan bir get isteğinin nasıl kullanılacağı gösterilmektedir:

GET https://slides.googleapis.com/v1/presentations/PRESENTATION_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=presentationId,comments,slides(objectId,commentAnchors)

Yanıt içinde yorumlar iki yerde döndürülür:

  • CommentThread nesnelerini içeren genel comments dizisi.
  • Yorum tutturma noktası kimliklerini sayfa veya sayfa öğesi konumlarıyla (nesne tutturma noktaları) eşleyen CommentAnchor nesnelerini içeren commentAnchors dizisi.

Belirli bir sayfadaki yorumları okuma

Ayrıca presentations.pages kaynağındaki pages.get yöntemini kullanarak belirli bir sayfayla ilgili yorumları ve bağlantıları da alabilirsiniz. Belirli bir sayfa hedefiyle ilgili yorumları eklemek için commentsViewMode sorgu parametresini ayarlayın:

GET https://slides.googleapis.com/v1/presentations/PRESENTATION_ID/pages/PAGE_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=objectId,comments,commentAnchors

Örnek yanıt

Aşağıdaki JSON örnek yanıtında, bir slayt sayfasındaki şeklin içinde bir metin aralığına sabitlenmiş bir yorum dizisi gösterilmektedir:

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

Yorum oluşturma ve yönetme

batchUpdate yöntemini kullanarak yorumları veya yanıtları programatik olarak ekleyebilir, düzenleyebilir ve silebilirsiniz. presentations kaynağında.

Yorumlarla ilgili toplu güncellemeler yaparken olası kısmi hataları izlemeniz gerekir. Daha fazla bilgi için Yorum güncelleme durumu başlıklı makaleyi inceleyin.

Yorum ekleme

Sunuya yorum dizisi eklemek için InsertCommentRequest nesnesini kullanın. Yorum metni içeriğini ve bağlantı konumunu sağlamanız gerekir. Sabit konum, aşağıdakilerden birini belirtmelidir:

  • objectId: Yorumun ekleneceği slayt sayfasının veya sayfa öğesinin (ör. şekil ya da tablo) nesne kimliği.
  • shapeTextAnchor: Bir şekil içindeki metin aralığına yorum ekler.
  • tableCellTextAnchor: Bir yorumu, tablo hücresindeki bir metin aralığına sabitler.
  • tableAnchor: Bir yorumu tablodaki bir hücre aralığına sabitler.

Aşağıdaki JSON örneğinde, bir slayt sayfasına sabitlenmiş yorum dizisinin nasıl ekleneceği gösterilmektedir:

{
  "requests": [
    {
      "insertComment": {
        "content": "This is a comment added using the API.",
        "objectId": "SLIDE_PAGE_ID"
      }
    }
  ]
}

assigneeEmailAddress alanına kullanıcının e-posta adresini girerek yorumu belirli bir kullanıcıya atayabilirsiniz:

{
  "requests": [
    {
      "insertComment": {
        "content": "Please review this slide.",
        "assigneeEmailAddress": "ASSIGNEE_EMAIL_ADDRESS",
        "objectId": "SLIDE_PAGE_ID"
      }
    }
  ]
}

Yanıt ekleme veya işlem yapma

Bir yorum dizisini yanıtlamak, çözmek veya yeniden açmak için AddCommentReplyRequest nesnesini kullanın.

Yanıtın Post nesnesiyle temsil edildiği commentId ve post değerlerini sağlamanız gerekir.

Post nesnesi, yanıtı content içerir ve isteğe bağlı olarak bir commentAction belirtebilir (yorum dizisini RESOLVE veya REOPEN işlemini de içerir). CommentActionType nesnesiyle temsil edilir.

Ayrıca, Post nesnesinde yeni bir assigneeEmail belirterek yorum dizisini yeniden atayabilirsiniz.

Aşağıdaki JSON örneğinde, mevcut bir yorum dizisine nasıl yanıt verileceği gösterilmektedir:

{
  "requests": [
    {
      "addCommentReply": {
        "commentId": "COMMENT_ID",
        "post": {
          "content": "Replying to the comment thread."
        }
      }
    }
  ]
}

Aşağıdaki JSON örneğinde, yorum dizisinin nasıl çözümleneceği gösterilmektedir:

{
  "requests": [
    {
      "addCommentReply": {
        "commentId": "COMMENT_ID",
        "post": {
          "commentAction": "RESOLVE"
        }
      }
    }
  ]
}

Yayını düzenleme

Oluşturduğunuz bir yayının metin içeriğini düzenlemek için UpdateCommentPostRequest nesnesini kullanın. Yazışmanın commentId, düzenlemek istediğiniz yayının postId ve yeni düz metni content belirtmeniz gerekir.

Aşağıdaki JSON örneğinde, bir gönderinin nasıl düzenleneceği gösterilmektedir:

{
  "requests": [
    {
      "updateCommentPost": {
        "commentId": "COMMENT_ID",
        "postId": "POST_ID",
        "content": "This is the updated comment text."
      }
    }
  ]
}

Yorumları ve yanıtları silme

Yorumları ve yanıtları silmek için iki seçeneğiniz vardır:

  • Yorum dizisini silme: Bir yorum dizisinin tamamını kaldırmak için CommentThread DeleteCommentRequest nesnesini kullanın. Bir yorum dizisini yalnızca CommentThread nesnesindeki headPost dizisinin yazarıysanız silebilirsiniz.

  • Yanıt silme: Belirli bir yanıtı Post bir CommentThread öğesinden silmek için DeleteCommentReplyRequest nesnesini kullanın. Yalnızca kendi yanıtlarınızı silebilirsiniz. commentAction veya assigneeEmail içeren yanıt gönderilerini silemezsiniz.

Aşağıdaki JSON örneğinde, yorum dizisinin nasıl silineceği gösterilmektedir:

{
  "requests": [
    {
      "deleteComment": {
        "commentId": "COMMENT_ID"
      }
    }
  ]
}

Yorum güncelleme durumu

Yorum dizilerinin kaydedilmesini gerektiren isteklerde (ör. yorum ekleme veya yanıt ekleme) kısmi hatalar yaşanabilir. Bu gibi durumlarda, sunum modelinde yapılan değişiklikler (ör. slayt içeriğini veya arka planları güncelleme) başarılı bir şekilde kaydedilebilir ancak ilişkili yorumlar kaydedilemeyebilir.

Yorum güncellemelerinin başarıyla uygulanıp uygulanmadığını, presentations.batchUpdate yönteminin yanıt gövdesindeki commentUpdateState alanını kontrol ederek doğrulayabilirsiniz. Alan, CommentUpdateState nesnesiyle gösterilir.

Aşağıdaki durumlar CommentUpdateState içinde döndürülür:

  • NO_UPDATES_REQUESTED: Toplu işlemde yorum güncellemeleri istenmedi.
  • ALL_SAVED: İstenen tüm yorum güncellemeleri başarıyla uygulandı.
  • ALL_FAILED_UNKNOWN_REASON: Diğer sunu değişiklikleri kaydedilmiş olsa bile, istenen tüm yorum güncellemeleri kaydedilemedi.