(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()