腾讯智慧校园开发平台

腾讯智慧校园开发平台

腾讯智慧校园开发平台

优势:

  1. 智慧校园联合登录
  2. 身份角色同一
  3. 消息推送

智慧校园接入流程:

  1. 创建应用: 填写网站名称,简介和图标,官网地址等信息
  2. 开发应用:
  3. 提交审核:
  4. 审核通过上线:

第三方应用使用指引

第三方应用?

  1. 在“应用管理”-> “本校应用”中看到。
  2. 在“应用管理”-> “第三方应用”->“应用市场”中找到

安装后如何使用第三方应用?

使用其PC管理功能,及移动端功能。

  1. 使用PC管理功能
    点击图标 -> 进入应用PC管理页面
  2. 使用移动端功能
    (1) 独立应用
    可直接进入使用
    (2) 普通应用
    配置方法:登录学校后台 -> 左侧菜单“应用管理” -> 在“本校应用”或“第三方应用”下找到应用图标 -> 点击图标右上角小齿轮 -> 进入“应用基本信息”页 -> 找到“移动端配置”

常见问题

OpenAPI调用相关问题

请完整的阅读每篇文档,特别注意必传字段及字段格式和说明

  1. 使用开放平台后台”API测试工具”
  2. 对照文档中的代码Demo

反馈时提供信息

  1. 完整的请求url,包括get参数。
  2. post的数据。
  3. 返回的code与msg。
  4. sign签名所用的密钥key。
  5. 提供bug的发生时间,至少要以小时为单位(年-月-日-小时),当然越具体越容易查明问题。

重点

  • 应用接入指引【重要】
  • 开放API说明【重要】

使用哪种方式调用API? ?–>

1) 使用开发者方式
2) 使用应用(openAppID)方式

开发流程

1) 使用开发者方式
1.1) 学校或上级单位自己开发:
1.2) 以开发者身份,替学校/上级单位开发:
调用方式为devCode+devType+keyId,
其中keyId和密钥key需要找学校/上级单位创建者索要

【开发流程】

获取devCode、devType、密钥key,用于生成后续的sign签名

开发者类型:学校/上级单位/合作伙伴/开发者,通过创建应用开发

调用API时,开发者信息、sign签名密钥获取方式:
调用方式:

openAppID
开放平台后台==》应用管理==》查看详情==》AppID、AppSecret

签名生成的步骤

第一步:

设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
特别注意以下重要规则:

参数名按ASCII码从小到大排序(字典序);
如果参数的值为空不参与传参和签名;
参数名区分大小写;
get 和 post 参数均参与签名(注意:签名时不要对 get 和 post 的参数进行urlencode);
sign 参数不参与签名;
根据HTTP协议要求,传递参数的值中如果存在特殊字符(如:&、@等),那么该值需要做URL Encoding,这样请求接收方才能接收到正确的参数值。这种情况下,待签名数据应该是原始值而不是encoding之后的值。例如:调用某接口需要对请求参数email进行数字签名,那么待签名数据应该是email=test@msn.com,而不是email=test%40msn.com。

第二步

在stringA最后拼接上“&key=AppSecret”得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值。

第三步:

拼接sign签名,得到最终请求字符串。

签名算法示例

1
2
3
4
5
6
7
8
9
10
11
{
"openAppID":"597882146416",
"objectid":1,
"objType":2,
"userid":1661,
"timestamp":1442401156,
"data":{
"id": "0",
"name": "张三"
}
}

第一步:

1
2
对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
$stringA="data[id]=1&data[name]=张三&objType=2&objectid=1&openAppID=597882146416&timestamp=1442401156&userid=YmvhAU762R0done";

第二步:

1
2
3
4
拼接API密钥,md5加密并转成大写,生成sign:
$stringSignTemp="stringA&key=testtoken123456"
$sign = strtoupper(md5($stringSignTemp));
即$sign为:"5F9F67A5635592A132BA935D44B25D40"

第三步:

1
2
对请求的数据拼接sign签名:
$param = $stringA . '&sign=5F9F67A5635592A132BA935D44B25D40;

最终请求如下:

1
2
https://open.campus.qq.com/api/OpenApi/getUserInfo?timestamp=1442401156&data[id]=1&data[name]=张三&objType=2&objectid=1&openAppID=597882146416&userid=1661&
sign=5F9F67A5635592A132BA935D44B25D40

最终请求如下:

1
2
https://open.campus.qq.com/api/OpenApi/getUserInfo?timestamp=1442401156&data[id]=1&data[name]=张三&objType=2&objectid=1&openAppID=597882146416&userid=1661&
sign=5F9F67A5635592A132BA935D44B25D40

【注意】

密钥key仅作加密使用,为了保证数据安全请不要在请求参数中传递,并对密钥key进行保密。

校验签名正确性

签名校验工具:

1
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1

校验方式:选择“deeplink”或“自定义参数”
PS.校验不通过那个提示不用管,只要对比自己代码生成的sign签名,与工具所生成的sign签名是否一致即可

【开发流程】

获取devCode、devType、密钥key,用于生成后续的sign签名,详见签名参数sign生成说明

==》获取objectid、objType、userid
测试id详见开放平台后台->测试工具->沙盒测试环境->沙盒学校objectid

正式id详见签名参数sign生成说明、应用管理后台接入、应用H5前台接入

==》查看公共参数文档,详见API公共参数说明

==》查看API接口文档

==》根据接口参数,生成和拼接sign签名,详见签名参数sign生成说明

==》调用接口

==》调试接口
若接口报错,请参照以下顺序排查:
仔细阅读接口文档,特别是必传参数及参数格式
使用开放平台后台“API测试工具”,进行排查
对照文档中的Demo代码
若报签名错误,对照签名参数sign生成说明文档和文档中的“签名校验工具”

2) 使用应用(需创建应用,openAppID)

【开发流程】

登录到开放平台后台(open.campus.qq.com)

==》创建应用

==》查看应用详情,获取AppID、AppSecret、H5Secret,用于生成后续的sign签名

==》获取objectid、objType、userid
应用上线前,只能使用测试id,获取方式为:开放平台后台->测试工具->沙盒测试环境->沙盒学校objectid

应用上线后,正式id的获取方式,详见签名参数sign生成说明、应用管理后台接入、应用H5前台接入

==》查看公共参数文档,详见API公共参数说明

==》查看API接口文档

==》根据接口参数,生成和拼接sign签名,详见签名参数sign生成说明

==》调用接口

==》调试接口

==》沙盒测试环境,测试应用

==》测试应用无误后,申请上线

==》一般情况下,腾讯智慧校园会在3个工作日内,审核应用

==》应用审核通过后,学校/上级单位在PC后台->应用管理->第三方应用中,安装应用

==》学校/上级单位,在PC或移动端使用应用时,会将objectid、objType、userid等参数,以url参数追加的形式传递到第三方应用的url中

【公共参数及签名密钥相关】

  1. 都有哪些公共参数?

详见文档:开放API调用说明==》API公共参数说明

  1. 什么是objectid、objType、userid,如何获取它们?

详见文档:开放API调用说明==》签名参数sign生成说明

  1. 什么是openAppID、AppSecret、H5Secret,如何获取它们?

详见文档:开放API调用说明==》签名参数sign生成说明

  1. 什么是devCode、devType、授权密钥、授权密钥ID,如何获取它们?

详见文档:开放API调用说明==》签名参数sign生成说明

  1. 如何生成和校验sign签名?

详见文档:开放API调用说明==》签名参数sign生成说明,以及文档中的“签名校验工具”

【OpenAPI调用方式相关】

  1. API调用说明?

详见文档:开放API调用说明==》API调用说明

  1. post请求参数demo?

详见文档:开放API调用说明==》签名参数sign生成说明

  1. OpenAPI调用代码demo?

详见文档:开放API调用说明==》Demo下载

【OpenAPI调用出错相关】

  1. 业务错误码及说明

详见文档:开放API调用说明==》业务错误码

  1. 接口返回“1018 密钥不存在“或”1010 AppID或密钥不正确”

请核对devCode、devType、密钥是否匹配,获取方式详见文档:开放API调用说明==》签名参数sign生成说明

  1. 接口返回“1011 参数错误,请检查必传参数及类型”

请核对是否传了公共参数,并确认post格式是正确的,注意post数据为数组格式

详见文档:

开放API调用说明==》API调用说明

开放API调用说明==》签名参数sign生成说明

开放API调用说明==》API公共参数说明

开放API调用说明==》Demo下载

  1. 接口返回“1002 签名错误”

详见文档:

开放API调用说明==》签名参数sign生成说明,以及文档中的“签名校验工具”

请仔细对照工具中的每个步骤,看看是哪一步不一致。

  1. 调用发消息接口时,接口返回“1013 该学校/上级单位尚未安装此AppID应用”

只有学校/上级单位创建者,在PC后台==》应用管理==》第三方应用中,安装了开发者提供的第三方应用,才能调用发消息接口,进行发消息。

应用接入流程

  1. 简要介绍

腾讯智慧校园通过开放平台来满足学校/上级单位的定制化开发需求。 学校/上级单位/合作伙伴可在开放平台创建应用、开发调试、提交审核。应用上线后,学校/上级单位可安装使用。

第三方开发者也可通过智慧校园开放平台创建并提交第三方应用,供所有学校/上级单位使用。

  1. 应用类型

腾讯智慧校园开放平台期待各种富于创新、安全稳定,符合校园5大使用场景的应用,包括:

(1)校内管理类应用

(2)学生学习类应用

(3)家校互动类应用

(4)移动办公类应用

(5)校园生活类应用

  1. 如何创建应用

(1)学校/上级单位:已加入腾讯智慧校园的学校/上级单位,将自动为其开通开放平台权限。学校超级管理员可直接登录到开放平台,创建并申请应用上线

(2)合作伙伴:签约的合作伙伴,将自动为其开通开放平台权限。合作伙伴管理员可直接登录到开放平台,创建并申请应用上线

(3)第三方公司/组织单位:需要先申请开发者资质,资质审核通过后,可登录开放平台,创建并申请应用上线。

  1. 如何开发调试

(1)应用程序开发

开发者可以在本地机器上进行应用程序的开发,实现业务逻辑。同时腾讯智慧校园开放平台开放了许多API,建议开发者先阅读API文档,了解不同场景下有哪些API可以调用。

(2)测试和联调

腾讯智慧校园开放平台提供的测试工具包含:沙盒学校测试环境、OpenAPI联调工具。详细信息请登录开放平台后查看“测试工具”。

  1. 如何部署应用

需要将应用部署在开发者自己的服务器上,因此需要自己准备服务器、域名等,并进行应用部署和测试。腾讯智慧校园暂不为该过程提供技术支持。

  1. 上线规范

为确保接入腾讯智慧校园开放平台应用的质量、提高后续运营服务的稳定性,上线前,请开发者按照接入规范对应用进行仔细检查及测试,对于不符合规范项进行修改。详见应用接入规范

  1. 应用审核

应用提交后,腾讯智慧校园将在5个工作日内对应用进行审核。审核中无法修改应用信息。审核通过后,应用将自动上线。

  1. 应用管理

开发者登录到腾讯智慧校园开放平台后,可以进入到管理中心统一管理应用,管理中心功能主要:

(1)服务所有开发者;

(2)服务于应用全生命周期;

(3)提供依据用户权限的功能;

(4)具备足够的帮助指引,可以由开发者自助使用。

详见管理中心使用说明

  1. 应用安装及使用

应用上线后,学校/上级单位可按如下步骤安装应用:

登录学校管理后台 -> 点击“应用管理”右侧的设置按钮 -> 选择“全部应用” -> 点击要安装的应用icon -> 进入安装页面,安装指引进行安装

安装成功后,使用方式如下:

若为独立应用:安装成功后应用将自动出现在菜单栏。可在学校管理后台访问其PC管理后台页面,可在微信企业号内使用其移动端功能。
若为普通应用:安装成功后需手动配置其移动端地址。可在“应用管理->我的应用”中访问其PC管理后台页面,可在配置的应用菜单处使用其移动端功能。

开发api说明

  1. PC管理后台、H5前台登录态打通

学校在管理后台【应用市场】安装了开发者的应用后,可以在学校后台【我的应用】==》【应用管理】中,对应用进行管理。

同时,学校可以将开发者所提供的H5 url粘贴到企业号应用菜单,或应用的H5页面中。

关于“PC管理后台应用管理登录态打通方案”,请参见“应用管理后台接入”小节。

关于“H5页面登录态打通方案”,请参见“应用H5前台接入”小节。

  1. 通过“API列表”中的接口,获取学校/上级单位信息

在获取登录态的同时,可以获取到学校ID/上级单位ID、用户ID等信息。

当开发者获取到学校ID、用户ID后,可以调用“API接口列表”中的接口,进一步获取学校/上级单位信息。

哪些学校和用户可以使用该应用,由【应用详情】中的“使用范围”和“适用人群”决定。开发者只能获取这部分人的信息。

API调用说明

1.开发者调用腾讯智慧校园API时,需使用Https协议、UTF8编码,访问域名为https://open.campus.qq.com 数据包不需要加密。
注:原有域名https://m.campus.qq.com 仍可正常使用,但不会再进行功能的升级和维护,并将于2018年底下线。

2.请求接口的数据为数组格式。

3.接口返回的数据为json格式。其中GET接口可以通过传入callback参数,兼容jsonp格式。

4.接口安全校验采用sign签名的方式,sign由密钥key生成(key为第三方应用AppSecret),sign参数的生成算法详见“签名参数sign生成说明”小节。

5.合作伙伴、第三方开发者通过在开放平台建立第三方应用的方式,使用openAppID(第三方应用ID)+AppSecret(第三方应用密钥)进行开发。

openAppID、AppSecret的获取方式:开放平台后台:应用管理==》应用详情,openAppID对应AppID

注意:应用AppSecret仅作加密生成sign签名使用,为了保证数据安全请不要在请求参数中传递,并对应用AppSecret进行严格保密。因自行泄漏密钥导致的数据安全问题,需要自行承担。

6.在每次调用智慧校园接口时都需要带上openAppID、objectid、objType、timestamp、sign参数。各参数具体含义及获取方式,详见“API公共参数说明”小节

7.在开发者调用API接口时,腾讯智慧校园会对签名和时间戳进行验证: 腾讯智慧校园会使用同样的sign签名算法判断接收到的sign与计算的签名是否一致,来验证请求来源的合法性;另外,接收到请求时会判断当前时间戳与接收到的timestamp参数是否在一个合理的范围,相差5分钟内才合法,以防止重放攻击。

API公共参数说明

“API接口列表”中有一些请求参数是通用的,在此做以下统一说明:

数据id,如objectid、userid、departid等,最大长度为50位

-------------本文结束感谢您的阅读-------------
达叔小生 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!
0%