#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 возникает та же ошибка?