Php 为什么我会收到一个通用的内部服务器错误消息?

Php 为什么我会收到一个通用的内部服务器错误消息?,php,curl,canvas-lms,Php,Curl,Canvas Lms,使用Canvas API使用以下PHP更新评论和反馈: $token_url = 'https://' . $lti_base_url . '.instructure.com/api/v1/courses/' . $course_id . '/assignments/' . $assign_id . '/submissions/' . $user_id; // var_dump($token_url); $header = array("Authorization: Bearer {$

使用Canvas API使用以下PHP更新评论和反馈:

$token_url = 'https://' . $lti_base_url . '.instructure.com/api/v1/courses/' . $course_id . '/assignments/' . $assign_id . '/submissions/' . $user_id;
// var_dump($token_url);
$header = array("Authorization: Bearer {$token}");

$post = [
  'comment'=>$msg_body,
    'submission'=>$grade,
];

$curl = curl_init($token_url);

curl_setopt($curl,CURLOPT_CUSTOMREQUEST,"PUT");
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);

curl_setopt($curl, CURLOPT_HTTPHEADER,$header);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl,CURLOPT_POSTFIELDS,$post);

$lti_msgresponse = curl_exec($curl);
curl_close($curl);
我在以下方面得到回复:

{“错误”:[{“消息”:“错误” 发生。“,“错误代码”:“内部服务器错误”}],“错误报告id”:2255}

其他非常类似的脚本工作得很好(尽管没有一个是“PUT”请求)。我错过了什么?这些一般性的错误消息确实令人沮丧


如果语法正确,可能是API本身的权限问题?

阅读文档

这些字段是: 注释[文本注释] 提交资料[已张贴(大学成绩)]

我遗漏了括号内的部分

因此,我们应该:

$post = [
  'comment[text_comment]'=>$msg_body,
    'submission[posted_grade]'=>$grade,
];

如果错误代码真的有意义,这会有所帮助。

好吧,错误在API端,我看不到其他选择,只能尝试联系他们告诉你发生了什么。好的,很好的回答。但我还是会向他们提交一份bug报告。您应该收到一个
400错误请求
,最好是有一条消息告诉您出了什么问题。收到
500内部服务器错误
意味着他们没有正确处理此案例。非常感谢您的反馈…我们会这样做的。Stripe和其他投资于帮助开发人员导航API和常见错误的公司,以及其他大多数公司,有很大的不同。