データdrom Canvas REST APIを取得するためのコードは次のとおりです。このデータにはコースの開始日と終了日などの情報が含まれています。このend_dateを変更する必要がありますプログラムに示すように、コース.I使用は、情報を取得するためにGET:キャンバスレストパイのカールを使用してPUT命令を使用する方法
#!/usr/bin/perl
use strict;
use JSON::Parse 'parse_json';
my $auth = "xxx";
my $curl = "curl -H 'Authorization: Bearer $auth'";
#system("curl -H 'Authorization: Bearer $auth'https://canvas.instructure.com/api/v1/courses");
#system("curl -H 'Authorization: Bearer $auth' https://canvas.instructure.com/api/v1/accounts/$accountid/analytics/current/grades");
system("$curl https://canvas.instructure.com/api/v1/courses/10300000000000133");
my $json = '["golden", "fleece"]';
my $perl = parse_json ($json);
プログラムの出力は次のようになります。
{"id":10300000000000133,"name":"DOV DEV","account_id":10300000000000001,"start_at":"2014-07-01T13:31:00Z","grading_standard_id":null,"is_public":true,"course_code":"DOV DEV","default_view":"feed","enrollment_term_id":10300000000000001,"end_at":"2016-05-28T04:00:00Z","public_syllabus":false,"storage_quota_mb":15000,"is_public_to_auth_users":false,"hide_final_grades":false,"apply_assignment_group_weights":false,"calendar":{"ics":"https://canvas.instructure.com/feeds/calendars/course_Jo1suCoQU3XhYMBJNm3Ziu2POTG4GL6DjzHJ7PM4.ics"},"sis_course_id":null,"integration_id":null,"enrollments":[{"type":"teacher","role":"TeacherEnrollment","role_id":822,"user_id":10300000000020171,"enrollment_state":"active"}],"workflow_state":"available","restrict_enrollments_to_course_dates":false}host-155-246-165-53:~ ajinkyabobade$
私は-X PUTコマンドを使用しています上記のような情報を取得した後end_dateを変更します。PUTを含むコードは、次のとおりです。
#!/usr/bin/perl
use strict;
use JSON::Parse 'parse_json';
my $auth = "xxx";
#my $accountid = "10300000000000133";
my $curl = "curl -H 'Authorization: Bearer $auth'";
#system("curl -H 'Authorization: Bearer $auth' https://canvas.instructure.com/api/v1/courses");
#system("curl -H 'Authorization: Bearer $auth' https://canvas.instructure.com/api/v1/accounts/$accountid/analytics/current/grades");
system("$curl https://canvas.instructure.com/api/v1/courses/10300000000000133 -X PUT -d 'end_at=2017-05-28T04:00:00Z' ");
my $json = '["golden", "fleece"]';
my $perl = parse_json ($json);
も、私は次の出力を取得しています。このコードを使用して変更されていないEND_DATEは、
{"id":10300000000000133,"name":"DOV DEV","account_id":10300000000000001,"start_at":"2014-07-01T13:31:00Z","grading_standard_id":null,"is_public":true,"course_code":"DOV DEV","default_view":"feed","enrollment_term_id":10300000000000001,"end_at":"2016-05-28T04:00:00Z","public_syllabus":false,"storage_quota_mb":15000,"is_public_to_auth_users":false,"hide_final_grades":false,"apply_assignment_group_weights":false,"calendar":{"ics":"https://canvas.instructure.com/feeds/calendars/course_Jo1suCoQU3XhYMBJNm3Ziu2POTG4GL6DjzHJ7PM4.ics"},"sis_course_id":null,"integration_id":null,"workflow_state":"available","restrict_enrollments_to_course_dates":false}host-155-246-165-53:~ ajinkyabobade$
カールするために砲撃する場合は、代わりに 'LWP'を使用する方がよいでしょう。正しいコードはinstructure.com APIに依存しているため、何が間違っているかは分かりません。 – Borodin