rails google api 的刷新范围请求
rails refreshing scope request for google api
我有一个 rails 应用程序,带有 google-api-client 和 omniauth-google-oauth2 gem。我想整合 google 日历。我尝试使用下面的代码进行身份验证,但失败了。
问题是当我将范围更改为:scope: ['email']
甚至 scope: ['hahahaha']
我从 google 得到相同的响应,如代码下方所示。玩了一会儿后我放弃了,等了一段时间再试,我得到了一个新的错误响应。我试图更改代码,但这次又因另一个错误而陷入困境。是否有时间限制或为什么更改代码后响应没有立即更新?
Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_oauth2, ENV['GOOGLE_API_KEY'], ENV['GOOGLE_API_SECRET'], {
scope: ['email, profile, calendar'],
access_type: 'offline'
}
end
来自 google 的错误消息:
错误:invalid_scope
一些请求的范围无效。 {有效=https://www.googleapis.com/auth/calendar, [invalid= profile, https://www.googleapis.com/auth/email,]}
根据 omniauth-google-oauth2 文档 scope
应该是一个以逗号分隔范围的字符串。但是您在代码中使用了一个数组。所以 scope: "email, profile, calendar"
应该可以。
关于随时间变化的响应,您是否在 Rails 应用程序中使用 Spring
? Spring
允许您通过在第一个 运行 期间预加载应用程序来更快地加载 Rails 应用程序。然后,当您再次 运行 rails
时,它会使用这个预加载的应用程序。更改应用程序配置后,您必须重新启动应用程序才能使更改生效。如果您只是重新启动 rails
它将不起作用,因为 Spring 仍在内存中 运行ning 一个应用程序。因此,如果您使用 Spring
,则在更改应用程序配置后也必须重新启动它,如下所示:
spring stop
rails s
我有一个 rails 应用程序,带有 google-api-client 和 omniauth-google-oauth2 gem。我想整合 google 日历。我尝试使用下面的代码进行身份验证,但失败了。
问题是当我将范围更改为:scope: ['email']
甚至 scope: ['hahahaha']
我从 google 得到相同的响应,如代码下方所示。玩了一会儿后我放弃了,等了一段时间再试,我得到了一个新的错误响应。我试图更改代码,但这次又因另一个错误而陷入困境。是否有时间限制或为什么更改代码后响应没有立即更新?
Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_oauth2, ENV['GOOGLE_API_KEY'], ENV['GOOGLE_API_SECRET'], {
scope: ['email, profile, calendar'],
access_type: 'offline'
}
end
来自 google 的错误消息:
错误:invalid_scope
一些请求的范围无效。 {有效=https://www.googleapis.com/auth/calendar, [invalid= profile, https://www.googleapis.com/auth/email,]}
根据 omniauth-google-oauth2 文档 scope
应该是一个以逗号分隔范围的字符串。但是您在代码中使用了一个数组。所以 scope: "email, profile, calendar"
应该可以。
关于随时间变化的响应,您是否在 Rails 应用程序中使用 Spring
? Spring
允许您通过在第一个 运行 期间预加载应用程序来更快地加载 Rails 应用程序。然后,当您再次 运行 rails
时,它会使用这个预加载的应用程序。更改应用程序配置后,您必须重新启动应用程序才能使更改生效。如果您只是重新启动 rails
它将不起作用,因为 Spring 仍在内存中 运行ning 一个应用程序。因此,如果您使用 Spring
,则在更改应用程序配置后也必须重新启动它,如下所示:
spring stop
rails s