Запрос от сервера в Google Web App возвращает код 302 - PullRequest
0 голосов
/ 10 июня 2019

Кто-нибудь вызывал веб-приложение, написанное в скрипте Google App с сервера (Rails ...).

Изображение ниже точно описывает мою проблему.Когда я вызываю проект GAS с сервера, он всегда возвращает статус 302.Но это нормально, когда я вызываю GAS напрямую

image

Я запускаю этот код один (Ruby), статус ответа был 200, но когда я поместил этот код в проект Rails, GoogleApp Script вернул 302

require 'faraday'

spreasheet_url = 'xxx'
token = 'xxx'
conn = Faraday.new url: spreasheet_url
conn.authorization :Bearer, token
res = conn.post do |req|
  req.headers['Content-Type'] = 'application/json'
  req.body = data.to_json
end

p res.status

Я пробовал с Nodejs и Go, и та же проблема произошла.

Пожалуйста, помогите мне, если у вас есть какие-либо предложения, большое спасибо!

1 Ответ

0 голосов
/ 10 июня 2019

For security reasons, content returned by the Content service isn’t served from script.google.com, but instead redirected to a one-time URL at script.googleusercontent.com. This means that if you use the Content service to return data to another application, you must ensure that the HTTP client is configured to follow redirects. For example, in the cURL command line utility, add the flag -L. Check the documentation for your HTTP client for more information on how to enable this behavior. - Контент Сервис |Apps Script |Разработчики Google

Если вы используете Ruby (с гемом Фарадея), решение заключается в том, что вы должны добавить FollowRedirects middleware:

conn = Faraday.new(url: spreasheet_url) do |faraday|
  faraday.use FaradayMiddleware::FollowRedirects
  faraday.adapter Faraday.default_adapter
end

Идея такая же, как Go или Nodejs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...