LMS API帐户创建导致错误

时间:2015-08-05 19:03:52

标签: php api curl canvas canvas-lms

我正在使用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
)

2 个答案:

答案 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"

使用云托管画布