Как использовать сохраненное на Google Диске изображение в формате jpeg в запросе replaceImage на Google docs?

#c# #google-drive-api #google-docs-api

#c# #google-drive-api #google-docs-api

Вопрос:

Я создаю документ Google из API Google docs. Мой документ создан на основе шаблона: скопируйте шаблон в новое местоположение, замените тексты и изображения.

Все в порядке, пока я не попытаюсь заменить свои изображения.

Изображения, которые нужно поместить в файл, хранятся в папке Google Диска.

Итак, у меня есть 2 вопроса: первый — как использовать запрос replaceImage с URL-адресом просмотра моего изображения? Используя следующий код, я сталкиваюсь с ошибкой 400.

 IDictionary<string, InlineObject> inlineObjects = doc.InlineObjects;
//Get the objet ID
string imageObjectId = inlineObjects.First().Value.ObjectId;

BatchUpdateDocumentRequest batchUpdateRequest = new BatchUpdateDocumentRequest {
   Requests = new List<Google.Apis.Docs.v1.Data.Request>()
};
var request = new Google.Apis.Docs.v1.Data.Request {
ReplaceImage = new ReplaceImageRequest() {
    ImageObjectId = imageObjectId,
    Uri = "https://docs.google.com/uc?export=viewamp;id=1pmXP9TFolKMQoUlXHllvIrQPlZiDxId6"
}};
            
batchUpdateRequest.Requests.Add(request);
DocumentsResource.BatchUpdateRequest updateRequest = 
_docSercive.Documents.BatchUpdate(batchUpdateRequest, fileId);
            
BatchUpdateDocumentResponse updateResponse = updateRequest.Execute();
  

Ошибка:

 Invalid requests[0].replaceImage: Access to the provided image was forbidden. [400]
Errors [
    Message[Invalid requests[0].replaceImage: Access to the provided image was forbidden.] Location[ - ] Reason[badRequest] Domain[global]
]'
  

и второй вопрос: как это индустриализировать, восстановив URL изображения из Google Drive API?
Когда я пытаюсь получить его прямо сейчас, я могу получить доступ только к имени изображения и расширению:

 Google.Apis.Drive.v3.Data.File f = _service.Files.Get(fileId).Execute();
  

должен ли я использовать параметры запроса для этого file.get call?

Спасибо за вашу помощь!

Комментарии:

1. В моей среде, когда изображение на Google Диске является общедоступным, его можно использовать с помощью ReplaceImageRequest. Так, например, при использовании другого внешнего URL возникает та же ошибка?