1

ここでWebhookを作成しようとしています:

curl --header "X-Shopify-Access-Token: <token>" -d '{"webhook": {"topic": "orders/create", "address": "http://www.google.com/", "format": "json"}}' https://test-store-402.myshopify.com/admin/webhooks.json

読みやすくするためにきれいに印刷された JSON を次に示します。

{
    "webhook": {
        "topic": "orders/create",
        "address": "http://www.google.com/",
        "format": "json"
    }
}

このエラーが返されます:

{"errors":{"topic":["can't be blank","Invalid topic specified. Topics allowed: orders/create, orders/updated, orders/paid, orders/cancelled, orders/fulfilled, orders/partially_fulfilled, app/uninstalled, customer_groups/create, customer_groups/update, customer_groups/delete, products/create, products/update, products/delete, collections/create, collections/update, collections/delete, carts/create, carts/update"],"address":["can't be blank"]}}

私は確認しました:

  • トピックのスペルが正しい
  • ドキュメントに従って、JSON リクエストのペイロードは "webhook" (単数形) で正しくラップされています。
  • JSON をコピーして jsonlint.com に貼り付け、JSON が有効であることを確認しました。

混乱しています...特にこれに関連するSOに関する他の質問は見られませんでした.私は何かひどく明白な間違ったことをしているに違いありません.

更新Content-type: application/json:ヘッダーを渡すことで、コマンドラインで動作するようになりました。しかし今、私はcurl_execPHPで問題を抱えています。次の CURLOPT のセットがあります。

CURLOPT_RETURNTRANSFER: true
CURLOPT_SSL_VERIFYPEER: false
CURLOPT_FOLLOWLOCATION: true
CURLOPT_MAXREDIRS: 10
CURLOPT_CUSTOMREQUEST: 'POST'
CURLOPT_HTTPHEADER: array {
    0 => string 'X-Shopify-Access-Token: <token>'
    1 => string 'Content-type: application-json' (length=30)

GET をうまく実行できることに注意してくださいcurl。この紛らわしい応答を返す POST のみです。

4

1 に答える 1

2

curl_exec で動作するようになりました。これが私が使用しているものです:

CURLOPT_RETURNTRANSFER: true
CURLOPT_SSL_VERIFYPEER: false
CURLOPT_FOLLOWLOCATION: true
CURLOPT_MAXREDIRS: 10
CURLOPT_CUSTOMREQUEST: 'POST'
CURLOPT_HTTPHEADER: array {
    0 => string 'X-Shopify-Access-Token: <token>'
    1 => string 'Content-type: application-json' (length=30)
CURLOPT_POSTDATA: '{"webhook":{"topic":"orders/updated","address":"http://www.google.com","format":"json"}}'

問題は、上記の更新プログラムで CURLOPT_POSTDATA を省略したことだと思います。

于 2012-09-14T23:07:18.477 に答える