尝试授权ruby中的服务器到服务器类型应用程序访问Google日历时授予无效
我正在尝试为自己创建一个直接连接到日历的应用程序。。。但我从来不想参与重新认证。我只想对身份验证进行一次编码,并完成它 认证代码如下所示:尝试授权ruby中的服务器到服务器类型应用程序访问Google日历时授予无效,ruby,sinatra,google-api,google-calendar-api,Ruby,Sinatra,Google Api,Google Calendar Api,我正在尝试为自己创建一个直接连接到日历的应用程序。。。但我从来不想参与重新认证。我只想对身份验证进行一次编码,并完成它 认证代码如下所示: key = Google::APIClient::PKCS12.load_key(SERVICE_ACCOUNT_PKCS12_FILE_PATH, PASSWORD) asserter = Google::APIClient::JWTAsserter.new( SERVICE_ACCOUNT_EMAIL, 'https://www.goog
key = Google::APIClient::PKCS12.load_key(SERVICE_ACCOUNT_PKCS12_FILE_PATH, PASSWORD)
asserter = Google::APIClient::JWTAsserter.new(
SERVICE_ACCOUNT_EMAIL,
'https://www.googleapis.com/auth/calendar',
key)
@client = Google::APIClient.new
@client.authorization = asserter.authorize#(SERVICE_ACCOUNT_EMAIL)
@client
我的服务\u帐户\u…PKCS。
文件与我的Sinatra应用程序一起位于目录的根目录中。我已经在我的gmail帐户上启用了谷歌日历API 我一直在研究一种身份验证方法: (在授权下,它谈论服务器到服务器的通信) 问题可能是什么?为什么我会犯这个错误特别是因为我几乎是从google gem的网站上复制代码的 更新: 我们发现: 他说我应该这样做: “请确保在请求中指定access\u type=offline。”
我该如何处理红宝石宝石呢?在不完全重新执行http请求的情况下?这里有一个工作代码,除了最后一行之外,它与此类似,应该包含实际拥有日历的用户(您)的电子邮件。我假定服务帐户电子邮件不是您的电子邮件
client_asserter = Google::APIClient::JWTAsserter.new(
config['client_email'],
PLUS_LOGIN_SCOPE,
key
)
$client.authorization = client_asserter.authorize(config['user_email'])
此外,请确保您将服务帐户正确装箱。我使用了这个指南:,它是用于域API的,但是第一部分应该是相同的
另外,您不需要另一个身份验证作用域吗
下面是一个完整的示例(ruby),我需要为自己工作:我在连接到驱动器时遇到了类似的问题。今天早上刚开始。你达成决议了吗?运气好吗?有同样的问题
client_asserter = Google::APIClient::JWTAsserter.new(
config['client_email'],
PLUS_LOGIN_SCOPE,
key
)
$client.authorization = client_asserter.authorize(config['user_email'])