Önerilerle çalışma

Google Dokümanlar, ortak çalışanların önerilerde bulunmasına olanak tanır. Bu öneriler, onay bekleyen düzenlemelerdir.

Doküman içeriğini getirmek için documents.get yöntemini kullandığınızda içerikte çözümlenmemiş öneriler olabilir. documents.get'nin önerileri nasıl temsil edeceğini kontrol etmek için isteğe bağlı SuggestionsViewMode parametresini kullanın. Bu parametreyle aşağıdaki filtre koşulları kullanılabilir:

  • SUGGESTIONS_INLINE ile içerik alın. Böylece, silinmeyi veya eklenmeyi bekleyen metinler dokümanda görünür.
  • Tüm öneriler kabul edilmiş şekilde içeriği önizleme olarak alma
  • Öneriler olmadan, tüm öneriler reddedilmiş şekilde önizleme olarak içerik alma.

SuggestionsViewMode sağlamazsanız Google Dokümanlar API'si, mevcut kullanıcının ayrıcalıklarına uygun bir varsayılan ayar kullanır.

Öneriler ve dizinler

SuggestionsViewMode karakterinin önemli olmasının bir nedeni, yanıttaki dizinlerin, aşağıda gösterildiği gibi öneri olup olmamasına bağlı olarak değişebilmesidir.

Öneriler içeren içerik Önerisiz içerik
{
 "tabs": [
  {
   "documentTab": {
    "body": {
     "content": [
      {
       "startIndex": 1,
       "endIndex": 31,
       "paragraph": {
        "elements": [
         {
          "startIndex": 1,
          "endIndex": 31,
          "textRun": {
           "content": "Text preceding the suggestion\n",
           "textStyle": {}
          }
         }
        ],
        "paragraphStyle": {
         "namedStyleType": "NORMAL_TEXT",
         "direction": "LEFT_TO_RIGHT"
        }
       }
      },
      {
       "startIndex": 31,
       "endIndex": 51,
       "paragraph": {
        "elements": [
         {
          "startIndex": 31,
          "endIndex": 50,
          "textRun": {
           "content": "Suggested insertion",
           "suggestedInsertionIds": [
            "suggest.vcti8ewm4mww"
           ],
           "textStyle": {}
          }
         },
         {
          "startIndex": 50,
          "endIndex": 51,
          "textRun": {
           "content": "\n",
           "textStyle": {}
          }
         }
        ],
        "paragraphStyle": {
         "namedStyleType": "NORMAL_TEXT",
         "direction": "LEFT_TO_RIGHT"
        }
       }
      },
      {
       "startIndex": 51,
       "endIndex": 81,
       "paragraph": {
        "elements": [
         {
          "startIndex": 51,
          "endIndex": 81,
          "textRun": {
           "content": "Text following the suggestion\n",
           "textStyle": {}
          }
         }
        ],
        "paragraphStyle": {
         "namedStyleType": "NORMAL_TEXT",
         "direction": "LEFT_TO_RIGHT"
        }
       }
      }
     ]
    }
   }
  }
 ]
},

{
 "tabs": [
  {
   "documentTab": {
    "body": {
     "content": [
      {
       "startIndex": 1,
       "endIndex": 31,
       "paragraph": {
        "elements": [
         {
          "startIndex": 1,
          "endIndex": 31,
          "textRun": {
           "content": "Text preceding the suggestion\n",
           "textStyle": {}
          }
         }
        ],
        "paragraphStyle": {
         "namedStyleType": "NORMAL_TEXT",
         "direction": "LEFT_TO_RIGHT"
        }
       }
      },
      {
       "startIndex": 31,
       "endIndex": 32,
       "paragraph": {
        "elements": [
         {
          "startIndex": 31,
          "endIndex": 32,
          "textRun": {
           "content": "\n",
           "textStyle": {}
          }
         }
        ],
        "paragraphStyle": {
         "namedStyleType": "NORMAL_TEXT",
         "direction": "LEFT_TO_RIGHT"
        }
       }
      },
      {
       "startIndex": 32,
       "endIndex": 62,
       "paragraph": {
        "elements": [
         {
          "startIndex": 32,
          "endIndex": 62,
          "textRun": {
           "content": "Text following the suggestion\n",
           "textStyle": {}
          }
         }
        ],
        "paragraphStyle": {
         "namedStyleType": "NORMAL_TEXT",
         "direction": "LEFT_TO_RIGHT"
        }
       }
      }
     ]
    }
   }
  }
 ]
},

Yukarıdaki yanıtta, "Öneriden sonraki metin" satırını içeren paragrafta SuggestionsViewMode kullanıldığında oluşan fark gösteriliyor. Değer SUGGESTIONS_INLINE olarak ayarlandığında, ParagraphElement öğesinin startIndex değeri 51'den başlar ve endIndex değeri 81'de durur. Öneri olmadan startIndex ve endIndex aralığı 32-62'dir.

Öneriler olmadan içerik alma

Aşağıdaki kısmi kod örneğinde, SuggestionsViewMode parametresi PREVIEW_WITHOUT_SUGGESTIONS olarak ayarlanarak tüm öneriler (varsa) reddedilmiş şekilde bir dokümanın nasıl önizleme olarak alınacağı gösterilmektedir.

Java

final string SUGGEST_MODE = "PREVIEW_WITHOUT_SUGGESTIONS";
Document doc =
    service
        .documents()
        .get(DOCUMENT_ID)
        .setIncludeTabsContent(true)
        .setSuggestionsViewMode(SUGGEST_MODE)
        .execute();

Python

SUGGEST_MODE = "PREVIEW_WITHOUT_SUGGESTIONS"
result = (
  service.documents()
  .get(
      documentId=DOCUMENT_ID,
      includeTabsContent=True,
      suggestionsViewMode=SUGGEST_MODE,
  )
  .execute()
)

SuggestionsViewMode parametresinin atlanması, parametre değeri olarak DEFAULT_FOR_CURRENT_ACCESS değerinin sağlanmasına eşdeğerdir.

Stil önerileri

Dokümanlarda stil önerileri de yer alabilir. Bunlar, içerikteki değişikliklerden ziyade biçimlendirme ve sunumla ilgili önerilen değişikliklerdir.

Metin ekleme veya silme işlemlerinin aksine, bunlar dizinleri kaydırmaz. Ancak TextRun karakterini daha küçük parçalara ayırabilirler. Bu işlemler yalnızca önerilen stil değişikliğiyle ilgili ek açıklamalar ekler.

Bu tür ek açıklamalardan biri olan SuggestedTextStyle, 2 bölümden oluşur:

  • textStyle: Metnin, önerilen değişiklikten sonra nasıl biçimlendirildiğini açıklar ancak neyin değiştiğini belirtmez.

  • Önerinin textStyle alanlarını nasıl değiştirdiğini belirten textStyleSuggestionState.

Önerilen stil değişikliğini içeren aşağıdaki doküman sekmesi alıntısında bunu görebilirsiniz:

[01] "paragraph": {
[02]    "elements": [
[03]        {
[04]            "endIndex": 106,
[05]            "startIndex": 82,
[06]            "textRun": {
[07]                "content": "Some text that does not ",
[08]                "textStyle": {}
[09]            }
[10]        },
[11]        {
[12]            "endIndex": 115,
[13]            "startIndex": 106,
[14]            "textRun": {
[15]                "content": "initially",
[16]                "suggestedTextStyleChanges": {
[17]                    "suggest.xymysbs9zldp": {
[18]                        "textStyle": {
[19]                            "backgroundColor": {},
[20]                            "baselineOffset": "NONE",
[21]                            "bold": true,
[22]                            "fontSize": {
[23]                                "magnitude": 11,
[24]                                "unit": "PT"
[25]                            },
[26]                            "foregroundColor": {
[27]                                "color": {
[28]                                    "rgbColor": {}
[29]                                }
[30]                            },
[31]                            "italic": false,
[32]                            "smallCaps": false,
[33]                            "strikethrough": false,
[34]                            "underline": false
[35]                        },
[36]                        "textStyleSuggestionState": {
[37]                            "boldSuggested": true,
[38]                            "weightedFontFamilySuggested": true
[39]                        }
[40]                    }
[41]                },
[42]                "textStyle": {
[43]                    "italic": true
[44]                }
[45]            }
[46]        },
[47]        {
[48]            "endIndex": 143,
[49]            "startIndex": 115,
[50]            "textRun": {
[51]                "content": " contain any boldface text.\n",
[52]                "textStyle": {}
[53]            }
[54]        }
[55]    ],
[56]    "paragraphStyle": {
[57]        "direction": "LEFT_TO_RIGHT",
[58]        "namedStyleType": "NORMAL_TEXT"
[59]    }
[60] }

Yukarıdaki örnekte paragraf, 6, 14 ve 50. satırlardan başlayan 3 metin çalıştırmasından oluşuyor. Ortadaki metin çalıştırmasını inceleyin:

  • 16. satır: suggestedTextStyleChanges nesnesi var.
  • 18. satır: textStyle çeşitli biçimlendirmeleri belirtir.
  • 36. satır: textStyleSuggestionState, bu spesifikasyonun yalnızca kalın yazılan kısmının öneri olduğunu gösterir.
  • 42. satır: Bu metin çalıştırmasının italik biçimlendirmesi mevcut belgenin bir parçasıdır (ve öneriden etkilenmez).

Öneriye yalnızca textStyleSuggestionState bölümünde true olarak ayarlanan stil özellikleri dahil edilir.