私にとってはうまくいきます。テストしたところ、ここに貼り付けたのと同じリクエスト本文を使用して問題なく動作させることができました。私のために働くPHPの完全なプログラムは次のとおりです。
<?php
// Input your info here:
$integratorKey = '***';
$password = '***';
$email = "***";
$name = "***";
$userId = "***";
$header = "<DocuSignCredentials><Username>" . $email . "</Username><Password>" . $password . "</Password><IntegratorKey>" . $integratorKey . "</IntegratorKey></DocuSignCredentials>";
//*** STEP 1 - Login (to retrieve baseUrl and accountId)
$url = "https://demo.docusign.net/restapi/v2/login_information";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("X-DocuSign-Authentication: $header"));
$json_response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ( $status != 200 ) {
echo "error calling webservice, status is:" . $status;
exit(-1);
}
$response = json_decode($json_response, true);
$accountId = $response["loginAccounts"][0]["accountId"];
$baseUrl = $response["loginAccounts"][0]["baseUrl"];
curl_close($curl);
// --- display results
echo "\naccountId = " . $accountId . "\nbaseUrl = " . $baseUrl . "\n";
//*** STEP 2 - Modify User Profile
$data = array( "companyName" => "DocuSign Inc.",
"title" => "Technical Program Manager" );
$data_string = json_encode($data);
$curl = curl_init($baseUrl . "/users/$userId/profile" );
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"X-DocuSign-Authentication: $header" )
);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
echo "PUT request sent, status is $status";
curl_close($curl);
?>