呼叫在 Canvas 的 API

張貼者:2019年6月4日 上午7:02John MoodleTW
Q:
請問如何在 PHP 中使用指令呼叫在 Canvas中 REST API?
例如: 課程開始日期和結束日期。
A:
其實呼叫 Canvas 的 API 並沒有持別給 PHP 呼叫的,RESTful API 的方法也都一樣。
你要先了解 Canvas API,如果能用 curl 組合成指令呼叫 API,就能在 PHP 中使用了。 
以我們在公司提供校方培訓工程師的文件中,截取的內容:

所有課程

假設我們要取得所有課程, 你需要使用的 API 及相關資訊如下:
  • API: GET /api/v1/courses
  • URL: https://canvas.click-ap.com/api/v1/courses 
  • API Token: 請向系統管理取得...
用 curl 或 瀏覽器 用 GET 取得, 你應該會得到如下的內容:
{
  "course": {
    "title": "經濟學",
    "description": "經濟學課程主要探討重要的經濟理論與應用,及目前各國經濟的現況與發展。",
    "path": "course-1",
    "canvas_course_id": 10010010,
    "teaser": "This is an example teaser",
    "enrollment_open": true,
    "visibility": "listed",
    "enrollment_cap": 150,
    "waitlist": true,
    "waitlist_cap": 25,
    "enrollment_fee": 00.00,
    "days_to_complete": 45,
    "list_order": 123,
    "credits": 4,
    "sku": "01120000A"
  }
}


如果單純用 curl 的指令應該是這樣:
curl -H 'Authorization: Bearer $auth'https://canvas.click-ap.com/api/v1/courses
取得成績
curl -H 'Authorization: Bearer $auth' https://canvas.click-ap.com/api/v1/accounts/123/analytics/current/grades
修改結束日期
curl https://canvas.click-ap.com/api/v1/courses/123 -X PUT -d 'end_at=2018-05-28T14:00:00Z'

以上只是大致舉例; 但因為 Canvas 的 API 功能包括很多, 無法一一為大家說明, 以上內容主要
參考自: https://canvas.instructure.com/doc/api/index.html 。


Comments