2016-09-04 6 views
1

Google Appsスクリプトを使用して、いくつかのGoogleカレンダーにユーザーをプログラムで追加しようとしています。基本的には、新しい教師が始まったときに、手作業で行うことなく、私たちが持っている5カレンダーに追加したいのです(これらは個人アカウントです)。他のユーザーをカレンダーに追加するには

私はsubscribeToCalendarメソッドのようなものを望みますが、アクティブなものでないユーザー、つまり私を追加したいと思います。スクリプトはすでに電子メールアドレスを収集しており、私はカレンダーIDを持っています。私はGoogleカレンダーのドキュメントを調べましたが、これを行う方法は見つかりませんでした。

GoogleカレンダーAPIのドキュメントでは、これを「私は欲しい」「リーダー」などの役割に更新する方法について説明していますが、Google Apps Scriptでどのように実装されているかわかりません Create a POST body using Google Apps Script

誰でも助けることができます:ページ上の例では、私は私が右方向にあるが、ただのカレンダーにユーザーを追加するためのとても複雑なようだと思うこの質問が見つから https://developers.google.com/google-apps/calendar/v3/reference/acl/update#examples

など、Javaのです? ありがとうございます。あなたは正しい方向に向かっている バズ

答えて

1

は、あなたがGoogleのデベロッパーコンソールでそれを... Advanced Calendar Service(それはenabled before useでなければなりません。スクリプトエディタでリソースを選択>高度なGoogleサービスを利用して、有効にする必要があります。 )

一度ACL: insertを使用することができますshare the calendarを有効にし、ここでの例です:

function myFunction() { 

    var calendarIds = ['CAL_ID_1','CAL_ID_2','CAL_ID_3','CAL_ID_4','CAL_ID_5']; 
    var userEmail = 'USER_EMAIL'; 
    var resource = { 
     'scope': { 
     'type': 'user', 
     'value': userEmail 
     }, 
     'role': 'reader' 
    }; 

    for (var i = 0; i < calendarIds.length; i++) { 
    Calendar.Acl.insert(resource, calendarIds[i]); 
    } 
} 
+0

あなたがスターです!これは完全に機能します。私が追加した唯一の余分なものは、5つのカレンダーを共有しているので、5つのcalendarId変数(たとえば、calendarId1、calendarId2など)と最後の行 "Calendar.Acl.insert(resource、calendarId1) – BazR

+0

@BazRカレンダーIDは、[配列](https://developer.mozilla.org/en-US/docs/Web)内で定義することができます。/JavaScript/Reference/Global_Objects/Array)、値をループするだけで答えが更新されました。 – ocordova

+0

ありがとうございました@ocordovaそのことを考えていないと、はるかに単純でクリーンなコードになりました。 – BazR

関連する問題