3

アプリのインストールでこのコードを実行しているときに、Unprocessable Entity ステータス コード 422 エラーが発生します。 ここにコードがあります

$sc = new ShopifyClient($_SESSION['shop'], $_SESSION['token'], $api_key, $secret);
$charge = array
(
    "webhooks"=> array
    (
        "topic"=>"orders/create",
        "address"=>"http://www.abc123no.com/nomi/s.php?key=123456789",
        "format"=>"json"
    )
);


try 
{
            $webhooks = $sc->call('POST','/admin/webhooks.json',$charge);
}
catch (ShopifyApiException $e)
{
    var_dump($e->getResponseHeaders());
}
4

2 に答える 2

3

エラーコード422は検証エラー用です。応答の本文には、アプリケーションのデバッグに役立つエラーが記述されています。

例:応答は次のようになります。{"errors":{"address":["for this topic has already been taken"]}}

エラーは、リクエストに間違った形式を使用したことが原因のようです。エンドポイントの作成はWebhookの配列を取りません。そのため、最上位のキーには単一の「Webhook」を使用する必要があります。

Webhook APIドキュメントには、リクエスト本文の正しい形式があります。

于 2012-09-25T22:04:05.763 に答える
0

webhook を webhook に変更すると、不正なリクエスト エラーが発生する可能性があります

"**webhooks**"=> array
    (
        "topic"=>"orders/create",
        "address"=>"http://www.abc123no.com/nomi/s.php?key=123456789",
        "format"=>"json"
    )
于 2014-08-11T12:31:35.200 に答える