Я считаю, что ваша цель заключается в следующем.
- Вы хотите извлечь объект Google Document как JSON данные, используя метод get API Google Docs.
- Вы хотите Для этого используйте ключ API.
- Вы хотите, чтобы пользователи загружали объект Документ Google с помощью одного URL-адреса.
- От
I want my application to only see the single shared document URL
.
Для этого, как насчет этого ответа?
Проблема и обходной путь:
На данном этапе кажется, что метод get API Docs нельзя использовать с ключом API, даже если документ Google открыт для общего доступа. Когда метод get API Docs запрашивается в общедоступном документе Google с ключом API, возвращается следующее значение. (В этом случае уже было подтверждено, что ключ API можно использовать для Drive API.)
{
"error": {
"code": 401,
"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"status": "UNAUTHENTICATED"
}
}
Из этого результата выясняется, что ключ API нельзя использовать в этой ситуации. Во избежание этого он может подумать об использовании учетной записи службы. Но на текущем этапе токен доступа не может использоваться в качестве параметра запроса. Ref Поэтому необходимо подумать о другом обходном пути.
Итак, в качестве другого обходного пути я хотел бы предложить использовать веб-приложения, созданные в скрипте Google Apps, для достижения вашей цели. В этом случае веб-приложения используются в качестве API.
Использование:
Пожалуйста, выполните следующую последовательность действий.
1. Создайте новый проект скрипта Google Apps.
Пример скрипта веб-приложений - это скрипт Google Apps. Поэтому, пожалуйста, создайте проект Google Apps Script.
Если вы хотите создать его напрямую, перейдите к https://script.new/. В этом случае, если вы не вошли в Google, откроется экран входа. Пожалуйста, войдите в Google. При этом открывается редактор сценариев Google Apps Script.
2. Подготовьте скрипт.
Скопируйте и вставьте следующий скрипт (Google Apps Script) в редактор скриптов. И , пожалуйста, включите Google Docs API в Advanced Google services . Этот скрипт предназначен для веб-приложений.
function doGet(e) {
const key = "samplekey"; // Please set the key for using this Web Apps.
const k = e.parameter.key;
const documentId = e.parameter.documentId;
if (k === key) {
const obj = Docs.Documents.get(documentId, {fields: "*"});
return ContentService.createTextOutput(JSON.stringify(obj)).setMimeType(ContentService.MimeType.JSON);
}
return ContentService.createTextOutput(JSON.stringify({error: "Wrong key."})).setMimeType(ContentService.MimeType.JSON);
}
- В этом случае используется метод GET.
3. Развертывание веб-приложений.
- В редакторе сценариев откройте диалоговое окно с помощью «Publi sh» -> «Развернуть как веб-приложение».
- Выберите «Я " for " Запустите приложение как: ".
- При этом сценарий запускается от имени владельца.
- Выберите "Любой, даже анонимный" для "У кого есть доступ к приложению: ".
- В этом случае токен доступа не требуется запрашивать. Я думаю, что я рекомендую этот параметр для вашей цели.
- Конечно, вы также можете использовать токен доступа. В это время установите «Anyone» .
- Нажмите кнопку «Развернуть» как новую «Project version».
- Автоматически открывать диалоговое окно «Требуется авторизация».
- Нажмите «Просмотреть разрешения».
- Выберите собственную учетную запись.
- Нажмите «Дополнительно» в разделе «Это приложение не подтверждено».
- Нажмите " Go до ### имени проекта ### (небезопасно) "
- Нажмите кнопку" Разрешить ".
- Нажмите" ОК ".
- Скопируйте URL-адрес веб-приложений. Это как
https://script.google.com/macros/s/###/exec
. - Когда вы изменили скрипт Google Apps, пожалуйста, повторно разверните его как новую версию. Этим измененный сценарий отражается в веб-приложениях. Пожалуйста, будьте осторожны.
4. Запустите функцию с помощью веб-приложений.
Это пример сценария python для запроса веб-приложений. Укажите URL-адрес и идентификатор документа веб-приложений.
import requests
document_id = '###' # Please set the Document ID.
key = 'samplekey' # Please set the key for using Web Apps.
url = 'https://script.google.com/macros/s/###/exec?documentId=' + document_id + '&key=' + key
res = requests.get(url)
print(res.text)
- В этом случае метод GET используется на стороне веб-приложений. Таким образом, вы также можете напрямую получить доступ к указанному выше URL-адресу с помощью браузера.
Примечание:
- Когда вы изменили скрипт веб-приложений, пожалуйста, повторно разверните Интернет Приложения как новая версия. Таким образом, последний скрипт отражается в веб-приложениях. Пожалуйста, будьте осторожны.
Ссылки: