我不知道我在做什么错。尝试通过Google服务帐户邀请某人参加活动。
第一步-我进入开发人员控制台并添加了一个服务帐户,获得了密钥(存储在下面代码中的Better.json中),为它提供了Calendar API权限,并且具有oath2权限:
第二步-我给我的服务帐户'GSuite域范围授权'] >>
第三步-在GSuite上,我登录到管理面板,找到了这个小家伙,并进行了适当的更新。我认为?范围? :
最后但并非最不重要的,这是我正在运行的代码。
require 'googleauth' scope = 'https://www.googleapis.com/auth/calendar' authorizer = Google::Auth::ServiceAccountCredentials.make_creds( json_key_io: File.open('better.json'), scope: scope) authorizer.fetch_access_token! service = Google::Apis::CalendarV3::CalendarService.new service.authorization = authorizer calendar_id = 'primary' event = Google::Apis::CalendarV3::Event.new( summary: 'douchin', location: '800 Howard St., San Francisco, CA 94103', description: 'A chance to hear more about Google\'s developer products.', start: Google::Apis::CalendarV3::EventDateTime.new( date_time: '2020-04-06T09:00:00-07:00', time_zone: 'America/New_York' ), end: Google::Apis::CalendarV3::EventDateTime.new( date_time: '2020-04-06T10:00:00-07:00', time_zone: 'America/New_York' ), recurrence: [ 'RRULE:FREQ=DAILY;COUNT=2' ], guestsCanModify: 'TRUE', attendees: [ Google::Apis::CalendarV3::EventAttendee.new( email: '[email protected]' ) ], reminders: Google::Apis::CalendarV3::Event::Reminders.new( use_default: false, overrides: [ Google::Apis::CalendarV3::EventReminder.new( reminder_method: 'email', minutes: 24 * 60 ), Google::Apis::CalendarV3::EventReminder.new( reminder_method: 'popup', minutes: 10 ) ] ) ) result = service.insert_event('primary', event) puts "Event created: #{result.html_link}" response = service.list_events(calendar_id, max_results: 10, single_events: true, order_by: 'startTime', time_min: Time.now.iso8601) puts 'Upcoming events:' puts 'No upcoming events found' if response.items.empty? response.items.each do |event| start = event.start.date || event.start.date_time puts "- #{event.summary} (#{event.html_link})" end
我有两个问题。
1)如果我尝试创建事件[有与会者的人
(这是我真正想要的),则会收到错误消息:forbiddenForServiceAccounts:没有域范围的委托,服务帐户无法邀请与会者权威。 (Google :: Apis :: ClientError)2)如果我尝试创建一个活动[没有任何参与者
,它说它有效,并将信息存储在某个神奇的日历中……但是它没有显示在我的GSuite日历中当我在Google上登录到我的管理员帐户时。因此,我的身份验证有效。.我认为。。它回退了一个事件链接,但是当我尝试转到它时,我收到另一个错误:在Google日历ui上出现“找不到请求的事件”。我不知道我在做什么错。尝试通过Google服务帐户邀请某人参加活动。第一步-我进入开发者控制台并添加了一个服务帐户,获得了密钥(...
确定-知道了。我只需要使用Signet来生成令牌,而不是使用什么令牌,例如下面的示例,其中privatekey =我的服务帐户私有密钥cred: