我正在使用Canvas LMS并拥有访问令牌。我需要在PHP中使用Web服务创建用户帐户。我曾尝试使用CURL(post方法)但在响应中收到错误。但GET工作正常。
就像我需要获取有关课程等的信息一样,它工作正常,但帐户创建无法使用CURL(帖子)。以下是我的代码。
$url = "https://xxxxx.com/api/v1/accounts/2/users";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $curl, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' .$token ) );
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, array(
'name' => 'vaue',
'short_name' => 'value',
'unique_id' => '1121',
));
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_ENCODING, "");
$curlData = curl_exec($curl);
curl_close($curl);
错误:
stdClass Object
(
[errors] => Array
(
[0] => stdClass Object
(
[message] => An error occurred.
[error_code] => internal_server_error
)
)
[error_report_id] => 1124
)
答案 0 :(得分:1)
我解决了我的问题。 “内部服务器错误”的原因是没有发送必填字段。如果有人需要知道,这里是必填字段。
'user[name]' => '',
'user[terms_of_use]' => 'true',
'pseudonym[unique_id]' => '',//i.e valid email
'pseudonym[send_confirmation]'=>'true'
现在我的CURL请求工作正常,我可以成功创建一个帐户。
答案 1 :(得分:0)
看起来您的参数的键不正确。他们应该是:
'user[name]' => 'vaue',
'user[short_name]' => 'value',
'pseudonym[unique_id]' => '1121',
您可以在以下位置找到适用于您的画布的文档:" https:// {your canvas domain} /doc/api/index.html"或者如果您在" api.instructure.com"
使用云托管画布