お世話になっております。
今やりたい事としましては、商談オブジェクトが作成されたのをトリガーに、
GoogleDriveの共有ドライブ配下に商談フォルダを作成したいです。
例)
商談名 = 「商談テスト」のレコードを作成
↓
共有ドライブ>テスト管理>01. 商談管理
∟「商談テスト」フォルダ
下記サイトを参考にSalesforceの組織設定とApex製造を行い、
GoogleDriveのマイドライブ上でのフォルダ生成まで確認ができたのですが、
GoogleDriveの共有ドライブ上でのフォルダ生成がうまくいきません。
恐らく共有ドライブへのアクセス権限(アクセストークン)を
付与するためのロジックが足りないのではと個人的には思いつつ、
その製造に手詰まりになってしまったため、こちらで質問させていただきました。
上記内容の共有ドライブでのフォルダ生成APIに関して、
どなたかご教授いただけないでしょうか?
■参考リンク
https://qiita.com/sikj/items/1b0f51d3f9f119dc322c
■修正したコード
変更前)
JSONGenerator gen = JSON.createGenerator(true);
gen.writeStartObject();
gen.writeStringField('mimeType', 'application/vnd.google-apps.folder');
gen.writeStringField('name', folderName);
gen.writeEndObject();
変更後)
JSONGenerator gen = JSON.createGenerator(true);
gen.writeStartObject();
gen.writeStringField('mimeType', 'application/vnd.google-apps.folder');
gen.writeStringField('name', folderName);
gen.writeObjectField('parents', new List<String>{'<01. 商談管理フォルダのフォルダID>'});
gen.writeEndObject();
@sena takagi さん
パラメータの中に supportsAllDrivesというのを追加して、これをtrueにすると作成させませんか?
リクエスト元のアプリケーションがマイドライブと共有ドライブの両方をサポートしているかどうかを指定します。
https://developers.google.com/drive/api/reference/rest/v3/files/create?hl=ja
https://developers.google.com/drive/api/guides/manage-sharing?hl=ja