3

(Google Scriptの新機能{約2週間}なので、冗長にしてください)

連絡先の電子メールアドレスのリストのカスタムラベルを表示するために、見つけた、または考えられるすべてのことを試しました。これは非常に苛立たしいことです。検索すると、Gmailメッセージラベルがヒットしますが、個々の連絡先内のメールアドレスのカスタムラベルはヒットしません。

長期的な目標は、息子のボーイスカウト部隊の自動転送機能を構築し、そこに到達するための赤ちゃんの一歩を踏み出すことです。

男の子の中にはSMSで通知されたい人もいれば、電子メールで通知されたい人もいます。一部には実際の電子メール(添付ファイルとともに使用)と携帯電話(リマインダーに使用)があるため、カスタムの連絡先電子メールラベルが必要です。すべての連絡先グループのリストを作成でき、各グループ内のすべての連絡先名のリストを作成できます。連絡先ごとにすべてのメールアドレスを取得することもできます。しかし、連絡先の電子メールリストのカスタムラベルを取得できません。

「getLabel」メソッドが「カーテンの裏側」のすべての作業を実行せず、ラベルの種類(カスタムまたは組み込み)に関係なくラベルテキストを返す理由は私にはわかりません。

任意のガイダンスをいただければ幸いです。

    function Get_Groups_Contacts(GroupList) 
    {
      var groups = ContactsApp.getContactGroups();  //get the list of groups
      for (var i in groups)  //for each item in the group list ...
      {
        for (var n=0; n<=15; n++)  //need to setup retries since the next part sometimes has server issues
        {
          try  //trap errors
          { 
            var cont = groups[i].getContacts()  //get the list of contacts that belong to the group
            var arrCont= []  //define the temp storage
            for (var j in cont)  //step through each contact
            {
    //I can store a list of contact names…
              arrCont.push(cont[j].getFullName() );  //get the contact's full name
    // but am trying to switch to specific email address….
              var eml = cont[j].getEmails();  // the list of all email address for a contact
    //now the messy part, trying to figure things out
    //lists the built in labels but not the custom labels
              for (k in eml) Logger.log(typeof eml[k].getLabel() + "??" + eml[k].getLabel() + "--" + eml[k].getAddress());
              for (k in eml)
              {
                try 
                {
                  var x = eml[k].getLabel();
                  Logger.log(k + " !!" + typeof x + "??" + x + "--" + eml[k].getAddress() + "**" + "hello");
    //              var oneeml = eml[k];
                  var oneeml = cont[j].getEmails("Other");
                  Logger.log("xxxxxxxxxxxxxxxxxxxxxxxx");
                  Logger.log("oneeml " + oneeml);
                  //Logger.log(oneeml.getLabel())
                  Logger.log("zzzzzzzzzzzzzzzzzzzzzzzz");
                  for (zz in oneeml) Logger.log(oneeml[zz]);
                  for (zz in oneeml) 
                    if (zz == "setAsPrimary") Logger.log(zz)
                    else if (zz == "setDisplayName") Logger.log(zz)
                    else if (zz == "setAddress") Logger.log(zz)
                    else if (zz == "setLabel") Logger.log(zz)
                    else if (zz == "deleteEmailField") Logger.log(zz)
                    else Logger.log(oneeml[zz]())
                    ;
                }
                catch(ext)
                {
                  Logger.log("inner catch");
                  Logger.log(ext.message);
                }
              }
            } 
    //end of the messy part
            GroupList[groups[i].getGroupName()] = arrCont  //store the list in the property
            break;  //go on to the next group
          }  //end of try
          catch(err)  //catch the error here
          {
    //        Logger.log (n + " error message" + err.message);  //debug
           Logger.log ("n=" + n);  //debug
            sleep((Math.pow(2,n) + (Math.random(0, 1000) / 100)) );  //increasing random sleep time waiting for the server
          }  //end of catch
          finally  //always do this part
          {
            cont = undefined;  //cleanup
            arrCont = undefined;  //cleanup
          }  //end of error traping
        }  //end of retry loop
      }  //end for each group item
    };  //end of function List_Groups_Contacts()
4

0 に答える 0