お世話になります。
現在Ruby on RailsにてGoogleカレンダーに添付ファイルを添付した予定表の新規作成を実装しているのですが、添付ファイルの添付がうまくいかない状態です。
前提
・タイトル/説明文のみで予定表を新規作成するところまでは実装済み。
・ファイルの添付作業のみ出来ていない状態
使用gemなど
Ruby
1 gem 'google_drive' 2 gem 'googleauth' 3 gem 'google-api-client' 4 gem 'google-apis-calendar_v3' 5 6 require "google_drive" 7 require 'googleauth' 8 require 'googleauth/stores/file_token_store' 9 require 'google/api_client/client_secrets'
Ruby
1service = Google::Apis::CalendarV3::CalendarService.new 2service.authorization = secrets.to_authorization 3 4# 登録するイベント内容 5 detail = { 6 summary: "予定表のタイトル", 7 description: "予定表の説明です", 8 location: "仮", 9 start: { 10 date_time: Time.now.iso8601, 11 }, 12 end: { 13 date_time: Time.now.iso8601, 14 }, 15 "attachments": [ 16 "fileUrl": [GoogleDriveにある写真の共有リンク], 17 "title": "画像タイトル", 18 "mimeType": "image/jpeg", 19 ], 20 } 21 22event = Google::Apis::CalendarV3::Event.new(detail) 23service.insert_event([カレンダーID], event)
Log
1Sending HTTP post https://www.googleapis.com/calendar/v3/calendars/[カレンダーID]%40gmail.com/events? 2200 3 4#<HTTP::Message:0x00007f995b2497c0 @http_header=#<HTTP::Message::Headers:0x00007f995b249798 @http_version="1.1", @body_size=0, @chunked=false, @request_method="POST", 5・ 6・ 7・ 8 @created=Mon, 06 Jun 2022 13:16:55 +0000, 9 @creator= 10 #<Google::Apis::CalendarV3::Event::Creator:0x00007f995e8af300 11 @email=[メールアドレス], 12 @self=true>, 13 @description="予定表の説明です", 14 @end= 15 #<Google::Apis::CalendarV3::EventDateTime:0x00007f995e8ad0a0 16 @date_time=Mon, 06 Jun 2022 22:16:54 +0900, 17 @time_zone="Asia/Tokyo">, 18 @etag="\"3309042830986000\"", 19 @event_type="default", 20 @html_link= 21 "https://www.google.com/calendar/event?eid=bnN1cGRjMjRkbnNxMGQ0c2JvdmowM3M1NzQga2lyaXNha2kuYW9pMzE1QG0", 22 @i_cal_uid="nsupdc24dnsq0d4sbovj03s574@google.com", 23 @id="nsupdc24dnsq0d4sbovj03s574", 24 @kind="calendar#event", 25 @location="仮", 26 @organizer= 27 #<Google::Apis::CalendarV3::Event::Organizer:0x00007f995e8bdfb8 28 @email=[メールアドレス], 29 @self=true>, 30 @reminders= 31 #<Google::Apis::CalendarV3::Event::Reminders:0x00007f995e8c6a00 32 @use_default=true>, 33 @sequence=0, 34 @start= 35 #<Google::Apis::CalendarV3::EventDateTime:0x00007f995e8c4980 36 @date_time=Mon, 06 Jun 2022 22:16:54 +0900, 37 @time_zone="Asia/Tokyo">, 38 @status="confirmed", 39 @summary="予定表のタイトル", 40 @updated=Mon, 06 Jun 2022 13:16:55 +0000>
こちらのコードを実行すると、エラーなどは表示されませんがカレンダーを確認した際添付ファイルが何もついていない状態となります。
(タイトル・説明文の入力内容で予定表自体の作成に成功していることは確認しています)
また、ログを見ている限りattachmentsのパラメータが載っていないことが気になっております…。
その他、調べた結果として「supports_attachments=trueのパラメータが必要」という記述を確認いたしましたので、最後の実行コードを以下のように書き換えたところこちらはエラーが表示されました。
Ruby
1service.insert_event([カレンダーID], event, supports_attachments: true)
Log
1Sending HTTP post https://www.googleapis.com/calendar/v3/calendars/[カレンダーID]%40gmail.com/events?supportsAttachments=true 2 3400 4Caught error required: Missing attachment URL. 5Error - #<Google::Apis::ClientError: required: Missing attachment URL. status_code: 400 6header: #<HTTP::Message::Headers:0x00007f995b089c00 7@http_version="1.1", @body_size=0, @chunked=false, @request_method="POST"…
1つ目の方法で添付ファイルがうまく添付できない理由または2つ目の方法でエラーをどう修正すべきか検討がつかず、ご教示いただきたいと考えております…。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。