2017-06-30 6 views
1

からオブジェクトが返されました:Googleは、スクリプトをアプリはマイコードの連絡先

function testjson() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    var group = ContactsApp.getContactGroup('MyFriends'); 
    var contacts = group.getContacts(); 
    var json = JSON.stringify(contacts[0]); 
    Logger.log(json); 
} 

デバッガを使用する場合は、私が返さ連絡変数は18個のオブジェクトの配列であることがわかります。デバッガは明らかにオブジェクトを "拡張"できません。そこで、JSON.stringifyを含めて文字列を取得しました。コード実行後のjson変数の値は"{}"です。私が本当に望むのは、フィールド値に直接アクセスできるように、連絡先オブジェクトのキー名を確認することです。 "var name = contacts[i].getFullName();"を使用する代わりに、"var name = contacts[i].fullname"を使用するか、フルネームのキーが何であっても使用します。

答えて

2

Googleでは、そのようなContactオブジェクトのプロパティにアクセスすることはできません。提供するgetFullName()などのメソッドを使用する必要があります。

あなたとそのプロパティを一覧表示することができます内蔵のアレイのようなオブジェクトの場合

function getArrayProperties() { 
    Logger.log(Object.getOwnPropertyNames(Array)); 
} 

しかし、あなたは連絡先やContactsApp対象とすることをしようとした場合:

function getContactProperties() { 
    var contact = ContactsApp.getContacts()[0]  
    Logger.log(Object.getOwnPropertyNames(contact)); 
} 

あなただけを取得:「例外TypeErrorを:オブジェクト型の引数が必要ですが、代わりにオブジェクト型があります。 "

+0

私はDemandwareの同じ状況に直面していますが、読書のためにこれらのプロパティにアクセスする手段があるかどうかを教えてください。 – Benj

+0

申し訳ありませんが、GoogleコンタクトとDemandwareへのアクセスの関係は表示されません。 –

+0

唯一の関係は、無用な '{}'につながるオブジェクトのストリング化の問題です。オブジェクトキーをリストすることではアクセスできない "動的プロパティ"があるようですので、私たちの問題の間にはある種の類似点があることを期待しました。 – Benj

関連する問題