質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

2953閲覧

API用のデータの整形と、送信方法について

tokotokotoko

総合スコア14

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/03/31 12:04

ご覧いただきありがとうございます。
WordpressのMW WP Formと、SATORIを連携したくいろいろと試行錯誤をしています。
やりたいことは、SATORIの指定する形式のデータを送信したいということです。

ひとまず、データを受け渡しができるかどうか、
直接functions内にデータを書き込んでテストを行いました
(本番ではemailなどの箇所はPOSTから取得します)

function my_mwform_after_send( $Data ) { if ( $Data->get_form_key() === 'mw-wp-form-xxx' ) { $url = 'https://api.satr.jp/api/v4/public/customer/upsert.json?'; $data = array( "user_key" => "xxx", "user_secret" => "xxx", "company_key" => "xxx", "company_secret" => "xxx", "customer[identity_type]" => "email", "customer[email]" => "test@aa.com" ); $data = http_build_query($data, "", "&"); $header = array( "Content-Type: application/x-www-form-urlencoded", "Content-Length: ".strlen($data) ); $context = array( "http" => array( "method" => "POST", "header" => implode("\r\n", $header), "content" => $data ) ); $html = file_get_contents($url, false, stream_context_create($context)); } } add_action( 'mwform_after_send_mw-wp-form-xxx', 'my_mwform_after_send' );

$dataの箇所の書き方が悪いのかと思いいくつか修正をして試してみたのですが、
どれもうまくいきませんでした。

もしかすると私のスキルではお話にならないレベルの話かもしれないのですが、
ご教示いただけますと嬉しいです、よろしくお願いいたします。

<参考>
SATORI API利用方法

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

APIが叩けてないのかエラーが返るのか何なのかわかんないんで何とも言えないんですが
とりあえずリンク先のページ見る限り
必須項目customer[collection_route]が足りてないですかね

投稿2020/04/01 04:32

KazuhiroHatano

総合スコア7819

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tokotokotoko

2020/04/01 05:20 編集

ありがとうございます! 「customer[collection_route]」を足すと無事追加されました。 初歩的なミスすぎて恐縮です・・・ ちなみに、こういった外部のAPIを利用する場合、 「APIが叩けてないのかエラーが返るのか」といのはどこで判別するものなのでしょうか? もし可能でしたら追加でご教示いただけますと幸いです。 よろしくお願いいたします。
KazuhiroHatano

2020/04/01 05:31

APIが叩けてないか確認 1、そもそも関数が実行されているのかerror_logとかなどを挟んで確認 2、レスポンスヘッダでステータスが200以外になってないか確認 https://www.php.net/manual/ja/reserved.variables.httpresponseheader.php エラーが返ってないか確認するのはAPIによるところなので マニュアルを確認かレスポンスの内容をvar_dumpしてみるか APIによってjsonで返ってくる奴もいればxmlで返ってくる奴もいるし プレーンテキスト返す奴もいるのでまずはマニュアル確認ですかね それなりのAPIならエラーコードのリファレンスを用意してくれてるはず
tokotokotoko

2020/04/01 05:36

早速のご回答ありがとうございます。 いただいたURLを確認してもっとAPIについて勉強したいと思います。 この度は本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問