Сообщение API Google Sheets - PullRequest
       33

Сообщение API Google Sheets

0 голосов
/ 18 октября 2018

Я работаю над проектом чата .Я хочу, чтобы пользователи могли вводить элементы списка в Google Sheet.Chatbot находится на DialogFlow, я создал намерение и включил webhook.Сейчас я в облачных функциях Google и создаю функцию для POST нового элемента на листе Google.Я уже успешно смог прочитать (GET) список элементов из листа, который будет отображаться пользователю в чат-боте.

Я новичок в nodejs и, по общему признанию, мало знаю об Oauth, но я настроил свой лист так, чтобы его мог редактировать кто угодно в Интернете, и у меня также есть рабочий ключ API.Чтобы попытаться просто приступить к основам, я пошел https://apitester.com, чтобы проверить там HTTP-запрос. Я могу легко получить ответ, который возвращает список элементов, которые у меня уже есть.Тем не менее, мой ответ POST по-прежнему возвращает проблемы, хотя сайт действительно указал, что запрос "PASS" изд.

Мой запрос POST

https://sheets.google.com/v4/spreadsheet/<SPREADSHEETID>/values/A1:append?includeValuesInResponse=true&key=<MY_API_KEY>

, где <SPREADSHEETID> и <MY_API_KEY> соответствует моим учетным данным.

Тело моего запроса:

{
  "values": [ ["Hello", "World"] ],
  "range": "Sheet1!A1:B1",
  "majorDimension": "ROWS"
}

Ответ:

HTTP/1.1 301 Moved Permanently
Location: https://docs.google.com/spreadsheets?usp=direct_url
Content-Type: text/html; charset=UTF-8
X-Content-Type-Options: nosniff
Date: Thu, 18 Oct 2018 07:31:14 GMT
Expires: Sat, 17 Nov 2018 07:31:14 GMT
Cache-Control: public, max-age=2592000
Server: sffe
Content-Length: 248
X-XSS-Protection: 1; mode=block
Alt-Svc: quic=":443"; ma=2592000; v="44,43,39,35"

Я посмотрел код ошибки 301 и обнаружил, что это перенаправлениесообщение, которое обозначает ошибку на стороне сервера.Я прочитал, что это должно быть самоустанавливающимся, так как ваш запрос будет просто перенаправлен на соответствующий сайт со значением Location выше.Но я также скопировал ссылку Location и обнаружил, что она просто перенаправила меня на мой личный Google Drive.Я читал в другом месте, что это может произойти, потому что Google общается по защищенной ссылке.Я проверил свой лист Google на всякий случай, , но там ничего не изменилось .

В любом случае, возможно ли проверить запрос на добавление, прежде чем я закодирую его в своей облачной функции Google?Если да, где я могу проверить и как убедиться в том, что запрос выполнен (возможно, только с ключом API и без кредитов Oauth)?

Я попытался сделать это на странице документации (https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append) («Попробуйте этот API» справа), но я просто получаю бесконечный красный круг прогресса.

Пожалуйста, помогите! Если единственный ответ - Oauth, пожалуйста, помогите мне пройтинаправляя меня к документации Oauth, поскольку я не нашел это очень полезным.

Спасибо!

РЕДАКТИРОВАТЬ 1 Хорошо, я пробовал кое-что. Oauth площадка для меня не работала, но этот веб-сайт (https://developers.google.com/apis-explorer/#p/sheets/v4/sheets.spreadsheets.values.append) позволил мне ПОСТАВИТЬ новую строку в мою таблицу. (Мне пришлось переключить Authorize OAuth 2.0, чтобыON.)

Итак, теперь у меня работает Oauth. Как я могу перевести это в свою облачную функцию Google с помощью node.js? Сохранять ли мои токены Oauth в определенные переменные, а затем добавлять их в заголовки?

...