2017-09-08 4 views
0

実践的な課題を解決するためにGoogle Apps Scriptを学び始めました。 Googleアカウントのすべての連絡先を定期的にCSVファイルにエクスポートし、定義済みのメールアドレスに送信するスクリプトを作成したいと思います。私の連絡先リストにデータが失われると、これは一種の自動バージョニングバックアップとなるはずです。Google Appsスクリプト:すべてのGoogleの連絡先をCSV形式でエクスポートする

実際に私がやろうとしているのは、Googleの連絡先のウェブインターフェースで使用できるネイティブのエクスポート機能を使用することです(詳細>エクスポート)。私はGoogle APIを抜いてしまったが、私が必要とするサービスやオブジェクトをGoogle APIで見つけることができなかった。まったく可能ですか?

+0

あなたが必要がある場合、すべてが[こちら]右であるように私には見える(https://developers.google.com/apps-script/reference/contacts/contacts-app)私はあなたが確認する必要がありますだと思いますcsv listを作成し、ファイルに保存してください。しかし、私の推測は、それはかなり簡単なことです。 – Cooper

+0

Gmailの連絡先に必要なものは、おそらく古いバージョンを入手することができます。 MOREをクリックすると、エクスポートが表示されます。私はこれが[リンク](https://www.google.com/contacts/u/0/?cplus=1#contacts)だと思います。 – Cooper

+0

@クーパー、あなたは私を理解しましたか? **私はこれを**プログラムでGASスクリプトから**実行する必要があります。 – TecMan

答えて

1

ここでは、連絡先の基本フィールドのいくつかをcsv出力にできるものにするために一緒に投げたものがあります。より多くのフィールドを追加し、異なる区切り文字を使用することができます。

function getAllContacts() { 
    var contactsA=ContactsApp.getContacts(); 
    var s=''; 
    var br='<br />';//line delimiter change to linefeed when not using html dialog 
    var dlm=' ~~~ ';//field delimiter 
    for(var i=0;i<contactsA.length;i++) 
    { 

    s+=Utilities.formatString('<br />\'%s\',\'%s\',\'%s\',\'%s\',\'%s\'%s', 
    (typeof(contactsA[i].getFullName())!='undefined')?contactsA[i].getFullName():'', 
    (typeof(contactsA[i].getAddresses().map(function (v,i,A) { return A[i].getAddress();}))!='undefined')?contactsA[i].getAddresses().map(function (v,i,A) { return A[i].getAddress();}).join(dlm):'', 
    (typeof(contactsA[i].getEmails().map(function(v,i,A) {return A[i].getAddress();}))!='undefined')?contactsA[i].getEmails().map(function(cV,i,A) {return A[i].getAddress();}).join(dlm):'', 
    (typeof(contactsA[i].getPhones().map(function(v,i,A){return A[i].getPhoneNumber();}))!='undefined')?contactsA[i].getPhones().map(function(v,i,A){return A[i].getPhoneNumber();}).join(dlm):'', 
    (typeof(contactsA[i].getCompanies().map(function(v,i,A){return A[i].getCompanyName();}))!='undefined')?contactsA[i].getCompanies().map(function(v,i,A){return A[i].getCompanyName();}).join(dlm):'',br); 
    } 
    var ui=HtmlService.createHtmlOutput(s).setWidth(800) ; 
    SpreadsheetApp.getUi().showModelessDialog(ui, 'Contacts') 
} 
+0

私の要求にはもっと明確にすべきだった。データが失われた場合にすべての連絡先を復元するために、後でGoogleアカウントにインポートするために使用できる連絡先に関するすべてのデータを含むCSVファイルが必要です。実際に私がやろうとしているのは、Googleの連絡先のウェブインターフェースで使用できるネイティブのエクスポート機能を使用することです(詳細>エクスポート)。私はこの問題を今質問に追加します。 – TecMan

+0

@TecManあなたの要件は多少異なるかもしれませんが、これはあなた自身の実装を開発するための良いスタートです。 CSVを電子メールで送信するのではなく、Googleシートに出力することを検討することもできます。 *あなたが立ち往生したら、あなたの質問を更新してください* – Jonathon

関連する問題