0
私は2つのシステム間の自動同期に取り組んでいます。 1つのシステムにデータベースがあり、マーケティングのために別のシステムを使用しています。私はデータベースシステムから完全なデータを引き出すことができます。しかし、マーケティングツールにデータを挿入するときに、無効なボディリクエストが発生します。ドキュメントのcURL APIと動的データとヘッダ認証の統合
、これらの詳細である:
1) - URL - :
https://api.customdomain/recipients
2) - リクエストボディ:
[
{
"email": "[email protected]",
"last_name": "Jones",
}
]
3 ) - 認証ヘッダー:
ヘッダーを通じて承認が行われます。
Authorization: Bearer *API key goes here*;
これは私が試したコードです。 データを動的に配置できるはずです。
$fields = array(
'email' => "[email protected]",
'last_name' => "test40"
);
$methd="POST";
$url="https://api.customdomain/recipients";
$data=http_build_query($fields);
$rep= CallAPI($methd, $url, $fields);
echo $rep;
function CallAPI($method, $url, $data = false)
{
$curl = curl_init();
switch ($method)
{
case "POST":
curl_setopt($curl, CURLOPT_POST, 1);
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
case "PUT":
curl_setopt($curl, CURLOPT_PUT, 1);
break;
default:
if ($data)
$url = sprintf("%s?%s", $url, http_build_query($data));
}
$headr=array(
"authorization: Bearer *API key here*",
"cache-control: no-cache"
);
$ver="CURL_HTTP_VERSION_1_1";
// Optional Authentication:
//curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
// curl_setopt($curl, CURLOPT_USERPWD, "username:password");
curl_setopt($curl, CURLOPT_HTTPHEADER,$headr);
curl_setopt($curl, CURLOPT_HTTP_VERSION,$ver);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
から十分であり、iは$データと試みている '$データ= http_build_query($フィールド)。 $ rep = CallAPI($ methd、$ url、$ data); ' まだ動作していません –
私はそれを手に入れました。マーケティングツールが受け取るボディのフォーマットは、この配列メソッドとは異なります。配列を文字列に変更しました。今それは完璧に働いています –