Google PeopleServiceの "updateContact"エンドポイントを使用して連絡先の更新操作を行っていますが、一部のフィールドが正しく更新されていないことに気づいています。私は "get"エンドポイントを使用して連絡先を取得し、連絡先のWork-Typeアドレスを更新して以前にない郵便番号を追加してから、updateContactを使用して連絡先を送り返しました。 200 OK応答が返されますが、返された連絡先オブジェクトには変更が表示されません。私は.NETクライアントライブラリとAPIエクスプローラを使用してこの動作を参照してください。Google People API - updateContact完全に更新されていません
アドレスデータ更新前:
"addresses": [
{
{
"metadata": {
"source": {
"type": "CONTACT",
"id": "61327fef08903be4"
}
},
"formattedValue": "123 Anywhere Street\nSometown",
"type": "work",
"formattedType": "Work",
"streetAddress": "123 Anywhere Street",
"city": "Sometown"
}]
アドレスデータが変更され、前に更新する:上記で
"addresses": [
{
{
"metadata": {
"source": {
"type": "CONTACT",
"id": "61327fef08903be4"
}
},
"formattedValue": "123 Anywhere Street\nSometown",
"type": "work",
"formattedType": "Work",
"streetAddress": "123 Anywhere Street",
"city": "Sometown"
}]
:要求の更新に応答して受信
"addresses": [
{
{
"metadata": {
"source": {
"type": "CONTACT",
"id": "61327fef08903be4"
}
},
"formattedValue": "123 Anywhere Street\nSometown",
"type": "work",
"formattedType": "Work",
"streetAddress": "123 Anywhere Street",
"city": "Sometown",
"postalCode": "55555"
}]
アドレスデータをたとえば、 "55555"の値を持つ新しい郵便番号が、 eアドレスオブジェクト。
私はUpdate Person Fields Mask(具体的にはこの場合は "addresses"フィールド)に可能なフィールドのフルセットを指定しており、問題のコンタクトのリソース名とETagが正確で、更新が完了した後に最新のコピーを取り込んでいることを確認してください。
これはPeople Service更新エンドポイントの既知の問題ですか?ドキュメントに記載されていない更新を強制的に要求するために何か指定する必要がありますか?
formattedValueが変更されない限り、Addressフィールドが更新されないバグがあるようです。 –
あなたが正しいかのように見えます。 formattedValueプロパティの強制的な再評価を追加すると、不足している更新が解決されました。ありがとう! –