みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になっております。
現在BカートというBtoB WEB受発注システムを利用しております。
使用環境は下記の通りです。
windows 10
Filemaker pro 17
APIを利用して在庫を更新したいのですが、下記のドキュメント通りに設定して実行しましたが、「product_stockが必須です。」と返ってきます。
認証はできています。
BカートAPIドキュメントサイト:https://docs.api.bcart.jp/?version=latest#232e1eb4-b76a-41f8-8e3f-b262005becd3
仮:Bカートに登録されている商品データ product_no:A1234_1 stock:2
実行スクリプト
処理内容:Bカートにある"A1234_1"の在庫を 2 から 5 に変更する。
---------------------------
変数を設定
変数名:$d
変数内容:
JSONFormatElements ( "{\"product_stock\":[
{
\"product_no\": \"A1234_1\",
\"stock_flag\": 0,
\"stock\": 5
}
]
}"
)
---------------------------
変数を設定
変数名:$curl
変数内容:
"--location --request PATCH \"https://api.bcart.jp/api/v1/product_stock/\"
--header \"Accept: application/json\"
--header \"Authorization: Bearer {access_token}\"
--header \"Content-Type: application/json\"
--data-raw @$d"
--------------------------
URLから挿入
選択;ダイアログあり:オフ;ターゲット:$a;"https://api.bcart.jp/api/v1/product_stock/";SSL証明書の検証;cURLオプション:$curl
-------------------------
実行結果
変数$aの内容
{"errors":[{"product_stock":"product_stockが必須です。"}]}
なぜこれが返ってくるのか分かりません。
filemakerでは無理な処理なのでしょうか。
すみませんが、教えていただけないでしょうか。
よろしくお願い致します。
Offline
すみません、手違いで複数投稿してしましました。
Offline
変数の内容が関数になってませんか?
JSONFormatElements は清書用関数なので、データには不要です。
変数の内容が関数になってませんか?
JSONFormatElements は清書用関数なので、データには不要です。
himadaneeさん、返信ありがとうございます。
変数$dの内容を下記のように変更したのですが、結果は同じ「product_stockが必須です。」と返ってきました。
変数を設定
変数名:$d
変数内容:
"{\"product_stock\":[
{
\"product_no\": \"A1234_1\",
\"stock_flag\": 0,
\"stock\": 5
}
]
}"
どこか間違っていますでしょうか。
よろしくお願い致します。
Offline
サンプルを見ると「--data-raw」は、 ' シングルクォーテーションで包まれているようです。
https://docs.api.bcart.jp/?version=late … 62005becd3
以下で試してみては。
"'{\"product_stock\":[
{
\"product_no\": \"A1234_1\",
\"stock_flag\": 0,
\"stock\": 5
}
]
}'"
Offline
qb_dpさん、ありがとうございます。
シングルクォーテーションで試しましたが、結果は同じでした。
在庫の取得(GET)は、できるのですが...
Offline
変数を設定
変数名:$curl
変数内容:
"--location --request PATCH \"https://api.bcart.jp/api/v1/product_stock/\"
--header \"Accept: application/json\"
--header \"Authorization: Bearer {access_token}\"
--header \"Content-Type: application/json\"
--data-raw @$d"
--------------------------
URLから挿入
選択;ダイアログあり:オフ;ターゲット:$a;"https://api.bcart.jp/api/v1/product_stock/";SSL証明書の検証;cURLオプション:$curl
-------------------------
コノ行「--location」と「\"https://api.bcart.jp/api/v1/product_stock/\"」は要らないのでは。
--location --request PATCH \"https://api.bcart.jp/api/v1/product_stock/\"
↓
"--request PATCH
--header \"Accept: application/json\"
--header \"Authorization: Bearer {access_token}\"
--header \"Content-Type: application/json\"
--data-raw @$d"
とか、
"--location
--request PATCH
--header \"Accept: application/json\"
--header \"Authorization: Bearer {access_token}\"
--header \"Content-Type: application/json\"
--data-raw @$d"
で試してみては。
Offline
ん~、以下が帰ってくるならやはりJSONの問題かも...
{"errors":[{"product_stock":"product_stockが必須です。"}]}
JSONの改行を無しで送って見るとか...
Offline
qb_dpさんが言われた、改行なしと@$dの部分を下記のように変更すると上手くいきました。
変数$d
内容:"{\"product_stock\":[{\"product_no\":\"A1234_1\",\"stock_flag\": 0,\"stock\":5}]}"
変数$curl
--data-raw @$d" 次のように変更 → --data-raw " & $d
ありがとうございました。
Offline
Pages: 1
[ Generated in 0.009 seconds, 8 queries executed - Memory usage: 523.71 KiB (Peak: 528.62 KiB) ]