Oauth 2.0 当试图调用日历API时,我该如何处理我的Google Oauth2令牌?

Oauth 2.0 当试图调用日历API时,我该如何处理我的Google Oauth2令牌?,oauth-2.0,google-api,google-calendar-api,google-oauth,Oauth 2.0,Google Api,Google Calendar Api,Google Oauth,我正在尝试使用Ruby与Google日历API对话。我随后获得了用户的同意,并保存了他们的授权令牌和刷新令牌。下面我将调用实际的API,但是我在任何地方都找不到任何关于如何具体使用令牌的说明。我想我应该把它包含在API请求的某个地方,但是在哪里呢 以前有人在Oauth中使用谷歌日历吗?我从来没有使用过这个API,也没有使用过Ruby 但这可能是您需要阅读的文档的一部分。 您可以在Http请求中添加头。 在Java中(很抱歉,我对Ruby一无所知),我做了一些类似的事情: headers.add

我正在尝试使用Ruby与Google日历API对话。我随后获得了用户的同意,并保存了他们的授权令牌和刷新令牌。下面我将调用实际的API,但是我在任何地方都找不到任何关于如何具体使用令牌的说明。我想我应该把它包含在API请求的某个地方,但是在哪里呢


以前有人在Oauth中使用谷歌日历吗?

我从来没有使用过这个API,也没有使用过Ruby

但这可能是您需要阅读的文档的一部分。

您可以在Http请求中添加头。 在Java中(很抱歉,我对Ruby一无所知),我做了一些类似的事情:

headers.add(“授权”、“承载人”+令牌)

希望这对您有所帮助

您需要遵循具有触发身份验证流的功能(
def authorize
  • 此函数将创建一个包含访问令牌和刷新令牌的令牌文件
  • 它将在必要时自动刷新令牌并授权您的日历服务
  • 一旦拥有授权服务,就可以使用它执行对API的任何调用
示例如何将链接到指南,用于:

#此部分来自quickstart,包括令牌创建和授权流程
需要“google/API/calendar\u v3”
需要“googleauth”
需要“googleauth/stores/file\u token\u store”
需要“日期”
需要“fileutils”
OOB_URI=“urn:ietf:wg:oauth:2.0:OOB”。冻结
APPLICATION_NAME=“谷歌日历API Ruby Quickstart”。冻结
凭证\u PATH=“CREDENTIALS.json”。冻结
#文件token.yaml存储用户的访问和刷新令牌,并且
#在第一次完成授权流时自动创建
#时间。
TOKEN\u PATH=“TOKEN.yaml”。冻结
SCOPE=Google::API::CalendarV3::AUTH\u CALENDAR\u只读
##
#通过从保存的凭据还原,确保凭据有效
#文件或初始化OAuth2授权。如果需要授权,
#将启动用户的默认浏览器以批准请求。
#
#@return[Google::Auth::UserRefreshCredentials]OAuth2凭据
def授权
客户端\u id=Google::Auth::ClientId.from\u文件凭据\u路径
token\u store=Google::Auth::Stores::FileTokenStore.new文件:token\u路径
authorizer=Google::Auth::UserAuthorizer.new client\u id、SCOPE、token\u store
用户\u id=“默认”
凭据=授权人。获取\u凭据用户\u id
如果是0.nil?
url=authorizer.get\u authorization\u url base\u url:OOB\u URI
将“在浏览器中打开以下URL并输入”\
“授权后生成的代码:\n”+url
code=get
凭据=授权人。从\u代码获取\u和\u存储\u凭据(
user\u id:user\u id,code:code,base\u url:OOB\u URI
)
结束
资格证书
结束
#初始化API
service=Google::API::CalendarV3::CalendarService.new
service.client\u options.application\u name=应用程序\u name
service.authorization=授权
需要“google/API/calendar\u v3”
需要“googleauth”
需要“googleauth/stores/file\u token\u store”
需要“日期”
需要“fileutils”
OOB_URI=“urn:ietf:wg:oauth:2.0:OOB”。冻结
APPLICATION_NAME=“谷歌日历API Ruby Quickstart”。冻结
凭证\u PATH=“CREDENTIALS.json”。冻结
#文件token.yaml存储用户的访问和刷新令牌,并且
#在第一次完成授权流时自动创建
#时间。
TOKEN\u PATH=“TOKEN.yaml”。冻结
SCOPE=Google::API::CalendarV3::AUTH\u CALENDAR\u只读
##
#通过从保存的凭据还原,确保凭据有效
#文件或初始化OAuth2授权。如果需要授权,
#将启动用户的默认浏览器以批准请求。
#
#@return[Google::Auth::UserRefreshCredentials]OAuth2凭据
def授权
客户端\u id=Google::Auth::ClientId.from\u文件凭据\u路径
token\u store=Google::Auth::Stores::FileTokenStore.new文件:token\u路径
authorizer=Google::Auth::UserAuthorizer.new client\u id、SCOPE、token\u store
用户\u id=“默认”
凭据=授权人。获取\u凭据用户\u id
如果是0.nil?
url=authorizer.get\u authorization\u url base\u url:OOB\u URI
将“在浏览器中打开以下URL并输入”\
“授权后生成的代码:\n”+url
code=get
凭据=授权人。从\u代码获取\u和\u存储\u凭据(
user\u id:user\u id,code:code,base\u url:OOB\u URI
)
结束
资格证书
结束
#初始化API
service=Google::API::CalendarV3::CalendarService.new
service.client\u options.application\u name=应用程序\u name
service.authorization=授权
#此部件使用服务创建事件
event=Google::api::CalendarV3::event.new(
总结:“谷歌2015年I/O”,
地点:“800 Howard St.,旧金山,CA 94103”,
描述:“有机会了解更多关于谷歌开发者产品的信息。”,
开始:Google::API::CalendarV3::EventDateTime.new(
日期和时间:“2015-05-28 09:00:00-07:00”,
时区:“美国/洛杉矶”
),
结束:Google::API::CalendarV3::EventDateTime.new(
日期和时间:“2015-05-28 17:00:00-07:00”,
时区:“美国/洛杉矶”
),
复发:[
'RRULE:FREQ=每日;COUNT=2'
],
与会者:[
Google::API::CalendarV3::EventAttendee.new(
电邮:'lpage@example.com'
),
Google::API::CalendarV3::EventAttendee.new(
电邮:'sbrin@example.com'
)
],
提醒:Google::API::CalendarV3::事件::提醒。新建(
使用默认值:false,
覆盖:[
Google::API::CalendarV3::EventRemembers.new(
提醒方式:“电子邮件”,
分钟:24*60
),
Google::API::CalendarV3::EventRemembers.new(
提醒_方法:“弹出”,
分钟:10
)
]
)
)
结果=服务。插入事件(“主”,事件)
放置“创建的事件:#{result.html_link}”
你所需要的一切