>
通过 Coursera REST API v1 从 Coursera 获取注册状态、成绩、截止日期和证书。
Coursera 使用 OAuth 2.0。有两种方式:
bash
export COURSERACLIENTID=yourclientid
export COURSERACLIENTSECRET=yourclientsecret
COURSERAACCESSTOKEN=$(curl -s -X POST \
https://api.coursera.com/oauth2/client_credentials/token \
-H Content-Type: application/x-www-form-urlencoded \
-d granttype=clientcredentials&clientid=$COURSERACLIENTID&clientsecret=$COURSERACLIENTSECRET \
| python3 -c import json,sys; print(json.load(sys.stdin)[access_token]))
export COURSERAACCESSTOKEN
Coursera 的公共端点对于某些查询不需要身份验证。当用户未设置凭证时使用。
https://api.coursera.com/api
bash
AUTHHEADER=Authorization: Bearer $COURSERAACCESS_TOKEN
bash
bash
curl -s https://api.coursera.com/api/courses.v1?ids=COURSEID1,COURSEID2&fields=name,slug,description,specializations \
-H $AUTH_HEADER
bash
curl -s https://api.coursera.com/api/onDemandCourseCompletions.v1?userId=USERID&courseId=COURSEID&fields=progressPercent,completedAt,grade \
-H $AUTH_HEADER
bash
curl -s https://api.coursera.com/api/onDemandDeadlineSchedules.v1?courseId=COURSE_ID&fields=deadlineSchedule,moduleIds \
-H $AUTH_HEADER
bash
curl -s https://api.coursera.com/api/certificates.v1?userId=USER_ID&fields=courseId,issuedAt,verifyUrl,grade \
-H $AUTH_HEADER
bash
curl -s https://api.coursera.com/api/courses.v1?q=search&query=SEARCH_TERM&fields=name,slug,partnerIds,primaryLanguages \
-H $AUTH_HEADER \
| python3 -m json.tool
活跃注册摘要:
你的 Coursera 课程
─────────────────────────────────────────────────────
📚 机器学习专项课程(斯坦福大学/DeepLearning.AI)
进度:68% 完成 成绩:91.4%
下一个截止日期:3月28日 — 第4周编程作业
📚 人人学 Python(密歇根大学)
进度:100% ✅ 成绩:96.7%
证书:2026年1月12日颁发
验证:https://coursera.org/verify/XXXX
📚 数据科学 SQL(加州大学戴维斯分校)
进度:23% 成绩:—
下一个截止日期:4月3日 — 模块2测验
─────────────────────────────────────────────────────
已获得证书:1 活跃课程:2
即将到来的截止日期:
截止日期(未来14天):
3月28日 第4周编程作业 — 机器学习
4月3日 模块2测验 — 数据科学 SQL
4月10日 同行评审提交 — 机器学习
用于课程搜索和公开课程信息:
bash
对于个人数据(成绩、证书),需要凭证。
python
import json, subprocess, os
def getenrollments(userid):
token = os.environ[COURSERAACCESSTOKEN]
r = subprocess.run(
[curl, -s,
fhttps://api.coursera.com/api/enrollments.v1?userId={user_id}
f&fields=courseId,enrolledAt,grade,completedAt,certificateCode,
-H, fAuthorization: Bearer {token}],
capture_output=True, text=True)
return json.loads(r.stdout).get(elements, [])
def upcoming_deadlines(enrollments, days=14):
from datetime import date, timedelta
cutoff = (date.today() + timedelta(days=days)).isoformat()
# 按课程解析截止日期并按日期过滤
...
| 错误 | 含义 | 解决方法 |
|---|---|---|
| 401 未授权 | 令牌已过期或缺失 | 重新运行令牌生成步骤 |
| 403 禁止访问 |
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 coursera-progress-1776085081 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 coursera-progress-1776085081 技能
skillhub install coursera-progress-1776085081
文件大小: 2.94 KB | 发布时间: 2026-4-14 10:03