1

Google Apps Script でコーディングを始めたところです。

カレンダーからイベントを取得し、これらのイベントのすべてのゲストにメールを送信する簡単なプログラムを作成しようとしました。

私は2つの問題に遭遇しました:

  1. getName() メソッドは、Google の連絡先で名前が定義されていても、名前ではなくゲストのメール アドレスを返します。(また、ドキュメントによると、名前が定義されていない場合、null が返されます)。

  2. getCalendarsByName メソッドを使用できないようです。getCalendarByID は正しく機能していますが、getCalendarsByName メソッドは必要なカレンダーを返しません。getOwnedCalendarsByName も試しましたが、うまくいきません。

誰からの助けにも感謝します。

7/1 3:30pm に更新: @Serge insas のおかげで、2 番目の問題は解決されました。ただし、最初の問題が残ります。コードは次のとおりです。

function myFunction() {
    var calendar = CalendarApp.getCalendarsByName('Test Calendar');
    Logger.log(calendar[0].getName());

    var today = new Date(); // get today's date
    Logger.log(today.toLocaleString());
    var endDate = new Date(); 
    endDate.setDate(today.getDate() +7); // set nextWeek's date to 7 days from today
    Logger.log(endDate.toLocaleString());

    var testEvents = calendar[0].getEvents(today, endDate);
    Logger.log(testEvents[0].getTitle());
    var guests = testEvents[0].getGuestList();
    Logger.log(guests[0].getName());
}

ログ出力は次のとおりです。

Test Calendar
July 1, 2012 3:27:58 PM EDT
July 8, 2012 3:27:58 PM EDT
Test Event 1
duytri.nguyen07@gmail.com

連絡先に名前が付けられていますが、最後の行は私のメールアドレスです。

4

2 に答える 2

0

このメソッドgetCalendarsByName()は配列を返します (Calendars に「s」があるのはそのためです)。コードの後ろに [0] を追加してこれを考慮しましたか (この名前の Cal が 1 つしかないか、最初の発生)?

使用しているコードを提供すると、支援が容易になります。

(ゲスト名については、同じコメント: 使用しているコードを提供してください。)

編集:コードをありがとう。あなたが正しいようです、それは問題のようです;-/

ゲストの名前を取得するには、ゲストが連絡先リストに登録されている必要があるため、連絡先サービスを使用してゲスト名を取得できると思います...回避策として...お知らせします...

これは機能するはずですが、理由はわかりませんが、何も結果が得られずにハングします...試してみませんか?

var testEvents = calendar[0].getEvents(today, endDate);
Logger.log(testEvents[0].getTitle());
var guests = testEvents[0].getGuestList();
var guestmail = guests[0].getEmail();
Logger.log(guestmail);
var contact = ContactsApp.getContact(guestmail);
var name = contact.getFullName();
Logger.log(guestmail+'   '+name);
于 2012-07-01T19:09:48.947 に答える
0

ContactsAppトリッキーです。グローバル スクリプトではなく、スクリプトを実行しているユーザーの連絡先でしか検索できません。管理者アカウントでは、まだグローバル連絡先リストにアクセスできません。

于 2012-09-26T11:35:56.957 に答える