2016-04-06 6 views
0

を使用して場所を更新するために失敗。今私はグーグルマイビジネスのAPIを介して場所を更新するための作業<code>PATCH</code>要求を構築しようとしてきたが、私は成功した要求をするためには至っていないしばらくの間はGoogleマイビジネスAPI

これは、要求の私の最後の試みが好きに見えるものです:

{ 
    location": { 
    "primaryPhone": "1-800-TEST" 
    }, 
    "languageCode": "en", 
    "fieldMask": "primaryPhone", 
    "validateOnly": true 
} 

私はfieldMaskのようなものを省略すると、私はaddress.countryが設定されていないというエラーを取得しますが、それは存在して、私は次のエラーを取得します:

{ 
    "error": { 
    "code": 400, 
    "message": "Request contains an invalid argument.", 
    "status": "INVALID_ARGUMENT" 
    } 
} 

ない非常に有益:P私は間違っていることができるもの

任意のアイデア?誰かが動作するサンプルリクエストを持っていますか?それがうまく行う前に、例えば見ながら(好ましくは営業時間を更新1):)

+0

あなたのコードを見て外に出るのは難しい種類です。試してlocation.getを実行すると、その場所の本体が返され、それに変更を加えてパッチを戻します。あなたが選ぶことができず選択したすべてのフィールドを設定する必要があると思います。 – DaImTo

+0

私が理解していること(https://developers.google.com/my-business/reference/rest/v2/accounts.locations/patch#request-body)から、私が更新する必要があるフィールドのみを送信できるはずです'fieldMask'プロパティを使ってどのフィールドを指定しますか: '更新する特定のフィールド。マスクが指定されていない場合、これは、完全な更新として扱われ、すべてのフィールドはrequest.' 'フィールドの完全修飾名のカンマ区切りのリストで設定解除空のフィールドを含むことができる、渡された値に設定されています。例: "user.displayName、photo"。 – Marco

+0

また、GETリクエストが正常に動作しているなど、コードはあまり面白くありません。リクエストの本文に何か問題があることはほとんど間違いありませんが、まだ何かを把握することができませんでした:) – Marco

答えて

0

私はここで巻き取りました。だから、決して遅くなくても、良い答えがここにあります。

リクエストが処理されるべき方法を記述するフィールドの区別、および場所に入るデータがあります。前者は?の後に行く? URLに後者は体に入る。

だから、あなたが発行する必要があります。

PATCH https://mybusiness.googleapis.com/v3/accounts/$accountId/locations/$locationId?languageCode=en&fieldMask=primaryPhone&validateOnly=true 

のボディに:

{"primaryPhone": "1-800-TEST"} 

を使用すると、有効なAuthorizationヘッダーを持っていると仮定すると、これは動作するはずです。