質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google+

Google+とは、Googleが提供するソーシャル・ネットワーキング・サービスです。情報を共有するユーザーの範囲を設定する「サークル」、Webカメラで複数名の相手と無料でビデオチャットできる「ハングアウト」などの機能があります。

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Google カレンダー

Google カレンダーは、Google社が提供する無料のスケジュール管理ツールです。パソコンやスマートフォン、タブレットなどからアクセスし、スケジュールの追加・変更が可能。Googleアカウントがあれば誰でも使用できます。

Q&A

解決済

1回答

842閲覧

[Rails]GoogleカレンダーAPIを用いて添付ファイルの添付ができない

kirisaki_aoi

総合スコア27

Google+

Google+とは、Googleが提供するソーシャル・ネットワーキング・サービスです。情報を共有するユーザーの範囲を設定する「サークル」、Webカメラで複数名の相手と無料でビデオチャットできる「ハングアウト」などの機能があります。

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Google カレンダー

Google カレンダーは、Google社が提供する無料のスケジュール管理ツールです。パソコンやスマートフォン、タブレットなどからアクセスし、スケジュールの追加・変更が可能。Googleアカウントがあれば誰でも使用できます。

0グッド

0クリップ

投稿2022/06/06 13:32

お世話になります。
現在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", 5678 @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つ目の方法でエラーをどう修正すべきか検討がつかず、ご教示いただきたいと考えております…。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

こちら自己解決いたしました。
attachmentのパラメータがスネークケースなのが正しいようでした。

"attachments": [
"file_url": [GoogleDriveにある写真の共有リンク],
"title": "画像タイトル",
"mime_type": "image/jpeg",
],

投稿2022/06/17 05:57

kirisaki_aoi

総合スコア27

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問