新手指南

欢迎使用学而思网校AI开放平台。

接入指南

简介

HI,您好,欢迎使用学而思网校AI教育开放平台服务。以下内容,是您接入服务的一些基本介绍,希望您能够在这里找到适合您业务的AI技术能力,感谢您的使用!

接入流程

1. 扫码登录

点击学而思网校AI教育开放平台顶部导航栏右侧登录按钮进行微信扫码,登录跳转到用户后台页面

2. 获取密钥

用户后台页面,您可在详情中查看到您的接入凭证,包括 App KeyApp Secret

注意:以上两个字段信息是您实际使用API的凭证,为保障您的利益,请防止泄露。

3. 接入方式

我们在每个API接口中,都提供两种接入方式(我们推荐您使用安全接入方式):

  • 快速接入方式:仅传入最精简的必备字段,快速实现API接口调用,我们竭尽所能保证您10分钟之内,感受到AI的魅力。
  • 安全接入方式:通过 App Key 和 App Secret ,生成签名(详见鉴权认证机制),通过签名进行安全认证后才能调用服务。

注意:使用快速接入方式,安全性较低,如果appkey 泄露,就有可能被别人盗用自己的调用额度。安全接入通过签名机制保证用户调用更加安全。所以,我们建议您使用安全接入方式进行 API 调用。

注意:新用户接入API 调用,默认为快速接入方式,此方式限制用户每10秒可成功调用一次请求,10秒之内再次调用,则返回API 调用报错信息:“接口调用频率超过访问允许间隔。如果是试用账号,请登录后使用自己的账号。如果希望扩容,请联系商务为您免费提高调用频率。”,等待10秒后,您可以再次正常调用接口。试用账号(App Key 为 8102b22a5e81e840176d9f381ec6f837 )限制用户每20秒可成功调用一次请求。

如果您需要较多频次调用API 接口,则需扫码登录自己的账号,使用用户后台页面中的 App Key,然后联系我们客服 ai@100tal.com 进行调用次数升级。

4. AI能力

鉴权认证

简介

本文档主要针对需要集成HTTP API的技术研发工程师。

学而思网校AI教育开放平台HTTP API使用签名机制对每个接口请求进行权限校验,对于校验不通过的请求,API将拒绝处理,并返回鉴权失败错误。

接口调用者在调用API时必须带上接口请求签名,其中签名信息由接口请求参数和应用密钥根据本文提供的签名算法生成。

本文档提供 getReqSign(计算签名)、doHttpPost(执行HTTP POST调用)两个PHP实现的工具函数方便开发者参考。

鉴权介绍

1. 鉴权作用

通过可靠的数字签名算法,认证调用方信息,防止非授权调用,占用网络或计算资源,同时防止因账号泄露、恶意消费而给您带来不良影响。

2. 鉴权接入

鉴权凭据获取,参见新手指南
快速接入需要使用app_key。
安全接入方式中,必须使用 app_key 和 app_secret 生成签名,数字签名认证通过,方能正常调用服务。

出现错误码 14000 - 14004 时,请查看是否因字段缺失或错误,导致鉴权未通过。

签名算法

1. 计算步骤

用于计算签名的参数在不同接口之间会有差异,但算法过程固定如下4个步骤。

  1. 将<key, value>请求参数对按key进行字典升序排序,得到有序的参数对列表N
  2. 将列表N中的value依次拼接成一个字符串T无拼接符
  3. 在字符串T的末尾拼接您的App_secret得到字符串S
  4. 对字符串S进行sha1运算,得到接口请求签名

2. 注意事项

  • 不同接口要求的参数对不一样,计算签名使用的参数是一样的:都是 app_key,time_stamp,nonce_str,app_secret
  • App_secret字段应最后进行拼接
  • 签名有效期5分钟,需要请求接口时刻实时计算签名信息
  • 更多注意事项,请查看常见问题

3. 参考代码(PHP)

以下是使用PHP实现的签名算法代码,开发者可以参考实现其他语言的版本。

// getReqSign :根据 接口请求参数 计算 请求签名
// 参数说明
//   - $params:接口请求参数(特别注意:不同的接口,参数对一般不一样,请以具体接口要求为准)
// 返回数据
//   - 签名结果
function getReqSign($params, $app_secret)
{
    // 1. 字典升序排序
    ksort($params);

    // 2. 拼接value
    $str = '';
    foreach ($params as $key => $value)
    {
        $str .= $value;
    }
  
    // 3. 拼接App_secret
    $str .= $app_secret;

    // 4. sha1运算,得到请求签名
    $sign = sha1($str);
    return $sign;
}

接口调用示例

本示例仅供开发者参考,学习如何生成签名以及调用API

1. 示例数据

假设接口请求参数如下,app_key为:8102b22a5e81e840176d9f381ec6f837,app_secret为:f308ce31e42e366093c01e5283f1acc02c2cd47492f5c8633b55d58930be2b2c ,其中sign参数用于存储接口请求签名。

参数名 位置 参数值 备注 必选 其他
app_key query 8102b22a5e81e840176d9f381ec6f837 应用标识 通用鉴权参数
time_stamp query 1493468759 秒级别时间戳 通用鉴权参数
nonce_str query fa577ce340859f9fe 随机字符串,字符长度1-32,可以由数字和字母混搭 通用鉴权参数
sign query 9f1390bee8f15855e0dc73ecb8a6236ec5a61949 接口请求签名,待计算 通用鉴权参数
key1   value1 接口请求数据   业务参数
key2   value2 接口请求数据   业务参数

关于如何获取应用密钥,请查阅接入指南

2. 计算请求签名(sign)

上述接口请求参数除了sign参数,其他参数均已确定参数值。

此时按照签名算法要求,sign的计算代码如下。

// 接口请求参数
$params = array(
    'app_key'    => '8102b22a5e81e840176d9f381ec6f837',
    'time_stamp' => '1493468759',
    'nonce_str'  => 'fa577ce340859f9fe',
);
$app_secret = '8102b22a5e81e840176d9f381ec6f837';

// 计算sign参数(接口请求签名)
$params['sign'] = getReqSign($params, $app_secret);
$params['key1'] = 'value1';
$params['key2'] = 'value2';

// 得到所有请求参数
var_dump($params);

上述var_dump($params)的输出结果:

array (size=6)
  'app_key' => string '8102b22a5e81e840176d9f381ec6f837' (length=32)
  'time_stamp' => string '1493468759' (length=10)
  'nonce_str' => string 'fa577ce340859f9fe' (length=17)
  'sign' => string '9f1390bee8f15855e0dc73ecb8a6236ec5a61949' (length=40)
  'key1' => string 'value1' (length=2)
  'key2' => string 'value2' (length=2)

可知,sign的计算结果为9f1390bee8f15855e0dc73ecb8a6236ec5a61949。

3. 最终请求数据

在完成sign计算后,即可得到所有接口请求数据,开发者可进入下一步完成API的调用(构造HTTP请求)。

参数名 参数值 备注
app_key 8102b22a5e81e840176d9f381ec6f837 应用标识
time_stamp 1493468759 秒级别时间戳
nonce_str fa577ce340859f9fe 随机字符串
sign 9f1390bee8f15855e0dc73ecb8a6236ec5a61949 接口请求签名
key1 value1 接口请求数据
key2 value2 接口请求数据

4. 执行API调用(PHP)

假设该示例的接口API地址为:https://api.ai.xueersi.com/v1/api,请求方式要求为:POST。

此时通过PHP实现API的调用代码如下,开发者可以参考实现其他语言的版本。

// doHttpPost :执行POST请求,并取回响应结果
// 参数说明
//   - $url   :接口请求地址
//   - $params:完整接口请求参数(特别注意:不同的接口,参数对一般不一样,请以具体接口要求为准)
// 返回数据
//   - 返回false表示失败,否则表示API成功返回的HTTP BODY部分
function doHttpPost($url, $params)
{
    $curl = curl_init();

    $response = false;
    do
    {
        // 1. 设置HTTP URL (API地址)
        curl_setopt($curl, CURLOPT_URL, $url);

        // 2. 设置HTTP HEADER (表单POST)
        $head = array(
            'Content-Type: application/x-www-form-urlencoded'
        );
        curl_setopt($curl, CURLOPT_HTTPHEADER, $head);

        // 3. 设置POST数据 
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $params);

        // 4. 调用API,获取响应结果
        curl_setopt($curl, CURLOPT_HEADER, false);
        curl_setopt($curl, CURLOPT_NOBODY, false);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        $response = curl_exec($curl);
        if ($response === false)
        {
            $response = false;
            break;
        }

        $code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        if ($code != 200)
        {
            $response = false;
            break;
        }
    } while (0);

    curl_close($curl);
    return $response;
}

// 设置请求数据(应用密钥、接口请求参数)
$params = array(
    'app_key'    => '8102b22a5e81e840176d9f381ec6f837',
    'time_stamp' => '1493468759',
    'nonce_str'  => 'fa577ce340859f9fe',
);
$app_secret = 'f49922d511d666848f250663c4fca84074b856a8';
$params['sign'] = getReqSign($params, $app_secret);
$params['key1'] = 'value1';
$params['key2'] = 'value2';

// 执行API调用
$url = 'https://api.ai.xueersi.com/v1/api';
$response = doHttpPost($url, $params);
echo $response;

上述echo $response的输出结果即API的响应结果:

{
  "code": 0,
  "msg": "请求成功",
  "data": {}
}

开发者协议

欢迎您使用学而思网校AI教育开放平台(以下简称“网校AI开放平台”)!

一、特别提示

1.在您(及您的用户)开始使用本平台提供的相关服务(“本服务”或“本平台服务”)之前,请您务必(并促使您的用户务必)认真阅读并充分理解本《开发者协议》的每一条款、您(及您的用户)开通或使用某项服务时的附加条款以及网校AI开放平台不时发布或修订的相关协议(统称为“本协议”)。在本协议中,请您务必(并应促使您的用户务必)特别注意及重点阅读与您(及您的用户)的权利及义务密切相关的条款,此类条款可能以粗体的方式标识,包括但不限于免除或者限制责任的条款。

2.如果您(及您的用户)使用本服务,您应当(并促使您的用户应当)完全接受本协议的全部约定或规定。如您(或您的用户)不同意本协议及/或随时对其的修改,请勿访问本平台或使用本平台服务,您(及您的用户)可通过从产品中终止使用本平台所提供的相关服务来取消“服务”。一旦您(及您的用户)开始使用本服务,就视为您(及您的用户)已经了解并完全接受本协议及网校AI开放平台系列声明的各项条款并同意网校AI开放平台对其随时作出的修改,同时还表明您(及您的用户)认可网校AI开放平台已经完全履行了相关的提示义务和说明义务。您应确保您(并应促使您的用户确保其自身)有完全的权利、权力、权限及能力同意及履行本协议,否则,请勿访问本平台或使用本平台服务。

3.网校AI开放平台有权不时对本协议进行修订,且无需事先及单独通知您(或您的用户)。如果本协议发生变动,网校AI开放平台将在文档中心上公布修订后的协议。您充分理解并同意(并应促使您的用户充分理解并同意),如果您(及您的用户)在修订后的协议公布后继续使用本服务,即视为您(及您的用户)同意修订后的协议。

二、使用本平台服务

1.服务介绍

本服务包括由网校AI开放平台通过互联网提供的语音识别技术、口语测评技术、语音合成技术、OCR速算技术、OCR文字识别技术等行业方案或者专项解决方案、网校AI开放平台不时开发的新型服务类型以及其他定制化业务服务。

2.权利声明

您的权利:您有权利享受网校AI开放平台提供的互联网技术和信息服务,并有权利在接受网校AI开放平台提供的服务时获得网校AI开放平台的技术支持、咨询等服务,服务内容详见本网站相关产品介绍。
本协议未明示向您(及您的用户)授权的其他一切权利仍由网校AI开放平台保留,本协议未授予您(及您的用户)任何其他未明示的权利。如您(及您的用户)使用其他权利,您(及您的用户)需要及时联系网校AI开放平台,事先获得网校AI开放平台的书面许可,并与网校AI开放平台签订书面协议。网校AI开放平台如果未行使前述任何权利,并不构成对该权利的放弃。

3.终止服务

除非您(或您的用户)与网校AI开放平台达成的书面协议中另有约定,网校AI开放平台有权随时自行选择发出通知,以变更、中断或终止提供本服务,也有权根据实际情况自行选择变更、中断或终止您(或您的用户)对本服务的使用。如因服务器或系统的维护、升级需要或其他原因需要暂停或终止本服务的全部或者部分内容,网校AI开放平台将尽可能事先公告。如果网校AI开放平台永久终止提供本服务,网校AI开放平台将在本服务终止前提前在相关软件或网站上公告,您同意(并应取得您的用户的事先同意)网校AI开放平台无需单独通知您(或您的用户),包括但不限于以下服务:网校AI开放平台可以随时自行决定限制您(或您的用户)使用服务的次数、数据量等。

三、使用规则及限制

1.您需保证(并应促使您的用户保证)您(及您的用户)对本服务的使用不违反国家各项法律法规的规定,且不侵害任何第三方权益,该如因此造成任何后果及损失,由您(及您的用户)自行承担全部责任,同时网校AI开放平台保留追究因此造成损失的权利。

2.禁止行为

您充分理解并同意(并应促使您的用户充分理解并同意),您(及您的用户)在使用本服务时,应当遵守所有中华人民共和国的法律、法规、规章制度、规范、政策、行政命令、强制标准及行业标准等(统称为“法律法规”)。除非法律法规允许且网校AI开放平台事先书面许可,您(及您的用户)不得从事以下活动,也不得同意、授权或指示任何第三人从事包括但不限于以下内容的活动:

(1) 删除或修改本平台服务中包含的任何版权声明、商标声明或其他所有权声明;包括但不限于任何有损本平台一切相关知识产权的行为。
(2) 向任何第三方提交错误地明示或暗示,您提供的或接受的服务为网校AI开放平台所属、赞助或认可的内容等;
(3) 宣扬或提供关于非法行为的说明信息、宣扬针对任何团体或个人的人身伤害或传播任何病毒、蠕虫、缺陷、特洛伊木马或其他具有破坏性的内容等;
(4) 对本服务进行逆向工程、反编辑或试图从本服务或本服务相关内容的任何部分提取源代码,或获取原始数据和其他数据等;
(5) 对本服务或者本服务运行过程中释放出的任何数据或其他数据及本服务运行过程中的交互数据进行复制、更改、修改等操作,包括但不限于使用插件、外挂或非经授权的第三方工具或服务接入本服务和相关系统;
(6) 创造任何网站或应用程序以重现或复制本服务或本平台。

3.遵守法律规范

您不得(并应促使您的用户保证不会)利用本服务上传、上载、发布、发表、传播任何违法内容,包括但不限于以下内容和行为:

(1) 反对宪法所确定的基本原则的;
(2) 危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;
(3) 损害国家荣誉和利益的;
(4) 煽动民族仇恨、民族歧视、破坏民族团结的;
(5) 破坏国家宗教政策,宣扬邪教和封建迷信的;
(6) 散布谣言,扰乱社会秩序,破坏社会稳定的;
(7) 散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;
(8) 侮辱或者诽谤他人,侵害他人合法权利的;
(9) 含有虚假、有害、胁迫、侵害他人隐私、骚扰、侵害、中伤、粗俗、猥亵或其他道德上令人反感的内容;
(10) 含有中国法律、法规、规章、条例以及任何具有法律效力之规范所限制或禁止的其他内容的;
(11) 为任何非法目的而使用网络服务系统。

4.保障网络信息安全

您不得(并应促使您的用户保证不会)利用本服务从事以下危害计算机网络信息安全的活动:

(1) 未经允许,进入计算机信息网络或者使用计算机信息网络资源的;
(2) 未经允许,对计算机信息网络功能进行删除、修改或者增加的;
(3) 未经允许,对进入计算机信息网络中存储、处理或者传输的数据和应用程序进行删除、修改或者增加的;
(4) 故意制作、传播计算机病毒等破坏性程序的;
(5) 其他危害计算机信息网络安全的行为。

5.服务的限制

本平台对每位用户每天发起的服务请求次数及并发请求量具有一定的限制。相关服务达到限制后,我们将可能暂时中断您(或您的用户)的服务。

若您使用的某项服务中包含可下载的网校AI开放平台提供的软件,则网校AI开放平台仅授予您非独占性的、不可转让的、非商业运营目的的个人使用许可。除非网校AI开放平台另有明示或与您另有约定外,您不得复制、修改、发布、出售、出租服务或所含软件的任何部分,也不得进行反向工程或试图提取该软件的源代码。

在双方协商一致的前提下,您(及您的用户)应在产品中正确、完整、醒目地标注“网校AI开放平台”或“技术由网校AI开放平台提供”的字样。

6.您充分理解并同意(并应促使您的用户充分理解并同意),您(及您的用户)对自己使用本服务的一切行为及由此产生的一切结果负责,包括但不限于您(及您的用户)所发表的任何内容、基于平台产品所提供的任何服务以及由此产生的任何后果。 您(及您的用户)应对本服务的内容自行判断是否使用,并承担因使用本服务及其相关内容而引起的所有风险,包括因对本服务及其内容的完整性、准确性、及时性及实用性的依赖而产生的风险。网校AI开放平台不对此提供任何担保和保证,不对因前述风险而导致的任何后果或损失对您(或您的用户)承担责任。

如果您(或您的用户)违反了法律法规或本协议,网校AI开放平台有权依据合理判断对违反法律法规或本协议的该行为作出处理,并保留对该违反行为采取法律所能提供的允许范围内所有补救手段的权利。网校AI开放平台有权对违反法律法规及本协议的任何用户调查并采取适当的法律行动,包括但不限于民事诉讼等。网校AI开放平台有权根据违法违规行为的严重程度,将上述违法违规行为的线索和您(或您的用户)的个人信息报告司法机关或其他行政执法机关,并配合其进行的调查、听证、起诉等。您(或您的用户)应当自行承担由此产生的任何法律责任。

四、知识产权与数据

1.网校AI开放平台是本服务及其呈现内容以及任何其他相关内容的知识产权的完整和全部的合法唯一权利人。您充分理解并同意(并应促使您的用户充分理解并同意),您(及您的用户)仅拥有依照本协议约定合法使用本服务的权利,与本服务相关的一切著作权、商标权、专利权、商业秘密等知识产权权利均受中华人民共和国法律法规和相关应的国际条约保护。

2.未经网校AI开放平台或相关权利人书面同意,您不得(并应促使您的用户保证不会)为任何商业或非商业目的自行或许可任何第三方实施、利用、转让上述知识产权。

3.您充分理解并同意(并应促使您的用户充分理解并同意),本服务的呈现内容中可能出现网校AI开放平台的任何版权标识、商标、服务标记、标识、商号、企业名称、域名及其他明显的标志,您不得(并应促使您的用户保证不会)以任何方式进行删除、掩藏、修改或替换该等信息或者标志。

4.您不得(并应促使您的用户保证不会)以任何方式删除、掩藏、修改或替换本服务中所附的或包含的任何专有权利声明(包含但不限于著作权、商标权、专利权、所有权声明等)、其他任何链接或公告等。

5.您同意(并应取得您的用户事先同意)在此授予网校AI开放平台免费的、永久性的、不可撤销的、非独家的和不可转让的权利和许可,在本协议期限内使用您(及您的用户)的标志或行为进行宣传。

6.平台运营数据是指您(及您的用户)在本平台使用服务、您(及您的用户)基于本平台服务而开发的产品或及与本平台服务相关的产品中产生的全部或任何数据,包括但不限于您(及您的用户)向本平台提交的数据、您(及您的用户)的使用或操作行为生成的数据及各类交互数据等。“平台运营数据”的所有权及其他相关权利除相关法律法规明确规定属于您(或您的用户)的合法相关权利外,均属于网校AI开放平台,且是网校AI开放平台的商业秘密。

7.用户数据:是指您(及您的用户)用户在开放平台、应用等中产生的与您(及您的用户)用户相关的数据,包括但不限于用户提交的语音数据、图像数据、用户操作行为形成的数据等。"用户数据"的所有权及其他相关权利属于网校AI开放平台,且是网校AI开放平台的商业秘密,依法属于您(及您的用户)用户享有的相关权利除外。

  • 您的产品或服务对于用户数据的收集、保存、使用等必须满足以下要求:
    • 您(及您的用户)的应用或服务需要收集用户任何数据的,必须事先获得用户的明确同意,且仅应当收集为应用程序运行及功能实现目的而必要的用户数据,同时应当告知用户相关数据收集的目的、范围及使用方式等,保障用户知情权。
    • 您采集的用户数据,应采取合理、安全的技术措施,确保其安全性,并对自己的行为(包括但不限于自行安装软件、采取加密措施或进行其他安全措施等)所引起的结果承担全部责任。
    • 未经网校AI开放平台同意,您不得通过本服务收集、存储、抓取、获得或要求用户提供包括但不限于人工智能开放平台或其服务平台的信息内容、用户数据等网校AI开放平台认为属于敏感信息范畴的数据,也不得将所合法获得的前述数据自行或提供给其用户、客户用于创建、补充或维护自身关系链。
    • 未经网校AI开放平台允许,您不得利用本服务所获得的数据实施或变相实施任何形式的推广、营销、广告行为。
    • 如果网校AI开放平台认为开发者收集、使用用户数据的方式,可能损害用户体验,网校AI开放平台有权要求您删除相关数据并不得再以该方式收集、使用用户数据。
    • 网校AI开放平台有权限制或阻止您获取用户数据及开放平台数据。
    • 一旦您停止使用开放平台,或网校AI开放平台基于任何原因终止您使用本服务,您必须立即删除全部从开放平台中获得的数据(包括各种备份),且不得再以任何方式进行使用、传播。

五、隐私政策

1.概述

网校AI开放平台十分重视用户信息的保护,网校AI开放平台将会采取合理措施保护您(及您的用户)的隐私权。为了向您(及您的用户)提供更好的服务,您同意(并应取得您的用户事先同意)并授权本平台基于服务必要性获取相应的信息和数据,不论是您(及您的用户)主动提供的还是使用本服务过程中获取的信息和数据。 您(及您的用户)提供的信息和数据将用于改善网校AI开放平台的服务,向您(及您的用户)提供更好的用户体验以及满足您(及您的用户)的需求等。

如果您(或您的用户)不同意提供相关信息和数据,或您不保证在您的用户知情、并授权允许的情况下使用本服务,您(或您的用户)将无法使用本服务的部分或者全部。一旦您(及您的用户)选择使用本服务,即表示您认可(并已取得您的用户的事先认可)并接受本协议中隐私政策的内容以及网校AI开放平台可能随时更新并公布的新内容。

网校AI开放平台会以高度的勤勉义务对待这些信息,除非事先获得您(或您的用户)的授权或本协议另有规定外,不会将这些信息对外公开或向第三方提供。网校AI开放平台可能会向关联公司提供您(或您的用户)的个人信息,并要求其遵循网校AI开放平台的隐私权政策以及其他任何相应的保密和安全措施来处理和使用这些信息。

您了解并同意,因您使用本服务、违反本服务条款或在您的账户下采取的任何行动,而导致的任何第三方索赔,应且仅应由您本人承担。如果由此引起网校AI开放平台及其关联公司、员工、客户和合作伙伴被第三方索赔的,您应负责处理,并承担由此造成的全部责任。

2.信息披露

在如下情况下,网校AI开放平台可能会披露您(或您的用户)的信息:

(1)事先获得您(或您的用户)的授权;
(2)您(及您的用户)使用共享功能;
(3)根据法律、法规、法律程序的要求或政府主管部门的强制性要求;
(4)以学术研究或公共利益为目的;
(5)为维护网校AI开放平台的合法权益,例如查找、预防、处理欺诈或安全方面的问题;
(6)符合相关服务条款或使用协议的规定;
(7)以无法合理被用于识别您(及您的用户)身份的汇总和/或匿名的形式分享您(及您的用户)的信息。

3.信息保护

网校AI开放平台非常重视信息安全,网校AI开放平台成立了专责团队,研发和应用多种安全技术和程序等,通过这些严格措施努力保护您的信息不被未经授权的访问、使用或泄漏。维护本服务的安全与正常使用是网校AI开放平台和您(及您的用户)的共同责任,网校AI开放平台将采取适当的安全措施和技术手段维护本服务,但是您充分理解并同意(并应促使您的用户充分理解并同意),网校AI开放平台并不能就此提供完全保证

六、免责及责任限制

1.如果网校AI开放平台发现或收到他人举报或投诉您(或您的用户)违反本协议约定的,网校AI开放平台有权根据您(或您的用户)的行为性质,采取包括但不限于暂停或终止本服务、追究法律责任等措施。

2.您充分理解并同意(并应促使您的用户充分理解并同意),网校AI开放平台有权依合理判断对违反有关法律法规或本协议规定的行为进行处理,对您(或您的用户)的违法违规行为采取适当的法律行动,并依据法律法规保存有关信息向有关部门报告等,您应独自承担由此而产生的一切法律责任。

3.您充分理解并同意(并应促使您的用户充分理解并同意),因您(或您的用户)违反本协议或相关法律法规的规定,导致或产生第三方主张的任何索赔、要求或损失,您应当独立承担责任,并保证网校AI开放平台免于因此遭受任何损失;网校AI开放平台因此遭受损失的,您应当向网校AI开放平台承担全部赔偿责任。您同意(并应取得您的用户的事先同意) 网校AI开放平台及其分支机构、联属机构、管理人员、代理机构、员工、广告客户、许可证颁发机构、供应商或合作伙伴免受任何第三方由于您(及您的用户)使用本服务、违反本协议或任何其他相关行为而导致或在任何方面与之相关的索赔,您(及您的用户)承担全部的责任并赔偿网校AI开放平台一切种类与性质的费用,包括所有索赔、损失、损害(实际和继发损害)、诉讼、判决、诉讼费和律师费。在此情况下,网校AI开放平台会向您(或您的用户)提供有关此类索赔要求或诉讼的书面通知。在所有情况下,网校AI开放平台对于任何不能合理预见的损失或损害不承担责任。

4.您承认(并应促使您的用户承认),您(或您的用户)若违反法律法规或本协议,将会给网校AI开放平台造成无法弥补的损害且损害程度将难以确定。您充分理解并同意(并应促使您的用户充分理解并同意),如果因为您(或您的用户)违反法律法规或本协议而导致网校AI开放平台、其他用户或任何第三方造成损害,引起任何和全部索赔、请求、损失、责任和费用,您(及您的用户)应当自行承担因此产生的全部后果和损失,包括但不限于罚款、赔偿金、诉讼费、律师费等,网校AI开放平台对此不承担任何责任。

5.若由于以下情形导致服务中断或受阻,给您造成损失的,您同意放弃追究网校AI开放平台的责任:
(1)受到计算机病毒、木马或其他恶意程序、黑客攻击的破坏;
(2)您或网校AI开放平台的电脑软件、系统、硬件和通信线路出现故障;
(3)您操作不当;
(4)您通过非网校AI开放平台授权的方式使用本服务;
(5)其他网校AI开放平台无法控制或合理预见的情形。

七、服务的变更、中断和终止

1.网校AI开放平台有权随时自行选择发出通知,以变更、中断或终止提供本服务,也有权根据实际情况自行选择变更、中断或终止您(或您的用户)对本服务的使用。如因服务器或系统的维护、升级需要或其他原因需要暂停或终止本服务的全部或者部分内容,网校AI开放平台将尽可能事先公告。如果网校AI开放平台永久终止提供本服务,网校AI开放平台将在本服务终止前提前在相关软件或网站上公告,您同意(并应取得您的用户的事先同意)网校AI开放平台无需单独通知您(或您的用户)。除法律法规明确要求网校AI开放平台承担责任之外,网校AI开放平台无需因本服务的任何变更、中断和终止向您或者任何第三方承担任何责任。

2.如您(或您的用户)停止访问本平台或使用本平台服务,或本平台终止向您(或您的用户)提供服务,您必须(并应促使您的用户必须)立即删除全部从平台中获得的数据(包括各种备份),且不得再以任何方式进行使用。

3.您应(并应促使您的用户应当)自行对因使用本服务而存储在网校AI开放平台服务器的各类数据等信息,在本服务之外,采取合理、安全的技术措施,确保其安全性,并对自己的行为(包括但不限于自行安装软件、采取加密措施或进行其他安全措施等)所引起的结果承担全部责任。

八、期限和终止

1.本协议的生效日期应为您(及您的用户)同意本协议或使用本服务之日中的较早日期,并且长期有效,除非根据以下情形而终止:

(1)您(或您的用户)丧失民事权利能力或民事行为能力,或丧失其他主体的法律授权;
(2)网校AI开放平台因为任何原因终止提供本服务;
(3)您(或您的用户)不再使用本服务;
(4)其他导致本协议终止的原因。

2.您(及您的用户)和网校AI开放平台都可以不需任何理由终止本协议。如果您(或您的用户)需要终止本协议,您(或您的用户)必须先将本服务从网站或应用中移除,并删除本平台提供的一切数据(包括但不限于所有图片、语音等以及本平台标志)。

3.本协议由于任何原因终止时,您(及您的用户)根据本协议所获得的一切权利及许可全部同时终止。届时,您(及您的用户)将无法继续使用本服务的任何部分及任何内容。

4.您充分理解并同意(并应促使您的用户充分理解并同意),本协议终止后,网校AI开放平台将继续保存通过本服务收集的所有信息和数据,并根据本协议使用。

5.在本协议终止后,网校AI开放平台仍然可以依据相关法律法规及本协议向您(或您的用户)追究违反法律法规或违反本协议行为的责任,本协议中关于个人信息保护、知识产权、担保与保证、责任承担、免责及责任限制、法律适用和争议解决的条款仍然有效。

6.除法律法规明确规定要求网校AI开放平台承担责任之外,网校AI开放平台无需因本协议或本服务的终止而需向您(或您的用户)或任何第三方承担责任。

九、争议解决

1.本协议的订立、效力、解释、履行、修改和终止,访问和使用本服务以及争议的解决均适用中华人民共和国(仅为本协议之目的,不包括香港、澳门和台湾)法律。

2.因访问和使用本服务而发生的任何争议,各方应首先通过友好协商的方式加以解决。协商不成时,任何一方均可向北京市海淀区人民法院提起诉讼。因访问和使用本服务而发生任何争议或任何争议正在进行诉讼时,除争议的事项外,各方仍应继续行使各自的其他权利并履行各自的其他义务。

十、其他

1.通知及送达

您充分理解并同意(并应促使您的用户充分理解并同意),网校AI开放平台就有关本服务的任何通知可通过如下任一途径向您(或您的用户)发送:在软件及网站张贴一般通知;向您(或您的用户)提供的电子邮件地址发送电子邮件;向您(或您的用户)提供的移动通讯号码发送短信通知;向您(或您的用户)提供的通讯地址以平信形式寄送书面通知。前述通知自发布或发送之日即视为已经对您(或您的用户)送达,您(及您的用户)有义务查收任何上述通知。

2.标题

本协议中的所有标题仅为阅读方便,本身并无实际涵义,不能作为本协议涵义解释的依据。

3.联系我们

关于本协议的问题,您(及您的用户)可以通过如下联络方式同网校AI开放平台联系: 中国北京市海淀区中关村海龙大厦H座2层 ai@100tal.com

4.解释权

网校AI开放平台在法律法规许可的范围内对协议条款享有最终解释权。

SDK 初始化鉴权

简介

HI,您好,欢迎使用学而思网校AI开放平台SDK初始化鉴权接口服务。

本文档主要针对需要集成HTTP API的技术研发工程师,详细描述SDK初始化鉴权能力相关的技术内容。您可以通过快速接入安全接入使用此AI能力。

接口能力

接口名称 接口能力简要描述 api 地址
SDK初始化鉴权 SDK初始化鉴权 http://openapiai.xueersi.com/v1/api/sdk/auth/init

适用范围

任意操作系统,任意编程语言,均可以通过http或https调用本接口。

请求方式

HTTP 方法POST

请求 URLhttp://openapiai.xueersi.com/v1/api/sdk/auth/init

注意: Content-Type为application/x-www-form-urlencoded,然后通过urlencode格式化请求体。

Header 如下

参数名 赋值
Content-Type application/x-www-form-urlencoded

 

urlencode介绍

在请求 API 的 post 请求参数中含有图片url地址或base64字符。url地址 或 base64 字符作为参数传递时,需要把 中文 以及 '/' 做一下编码,防止解析中出现歧义,从而符合url的规范。

将中文 以及 '/'  转换为百分号编码形式,这就是 urlencode 格式化操作

部分语言的第三方包内部做了 urlencode 编码,不进行 urlencode 格式化也可以正常进行 API 请求,但    是进行 urlencode 格式化之后一定可以通过请求。所以我们推荐您对请求体中的参数进行 urlencode 操作

 

快速接入方式

请求参数详情

参数名 类型 是否必选 赋值说明 样例 备注
app_key string 应用标识 8102b22a5e81e840176d9f381ec6f837  
package_name string 包名 包名  
platform string 平台 android | ios | pc  

请求代码示例

HTTP 代码示例:

POST /v1/api/sdk/auth/init HTTP/1.1
Host: openapiai.xueersi.com
Content-Type: application/x-www-form-urlencoded
User-Agent: PostmanRuntime/7.19.0
Accept: */*
Cache-Control: no-cache
Postman-Token: c7bdaf1b-587f-4b50-b9cb-9847b25f704b,77df1668-e4e3-404d-86b3-3337f0e1a49b
Host: openapiai.xueersi.com
Accept-Encoding: gzip, deflate
Content-Length: 74
Cookie: X-Request-Id=6eb8a021da5e474a91237d3f2ca46c56; stu_area_id=11; aliyungf_tc=AQAAAPh6oUlovAAA1mK4NJS2lR4Z9km+
Connection: keep-alive
cache-control: no-cache

app_key=8102b22a5e81e840176d9f381ec6f837&package_name=pck&platform=android

cURL 代码示例:

curl -X POST \
  http://openapiai.xueersi.com/v1/api/sdk/auth/init \
  -H 'Accept: */*' \
  -H 'Accept-Encoding: gzip, deflate' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Length: 74' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Cookie: X-Request-Id=6eb8a021da5e474a91237d3f2ca46c56; stu_area_id=11; aliyungf_tc=AQAAAPh6oUlovAAA1mK4NJS2lR4Z9km+' \
  -H 'Host: openapiai.xueersi.com' \
  -H 'Postman-Token: c7bdaf1b-587f-4b50-b9cb-9847b25f704b,0ccfe9b7-f8bc-411d-b096-30c93c508502' \
  -H 'User-Agent: PostmanRuntime/7.19.0' \
  -H 'cache-control: no-cache' \
  -d 'app_key=8102b22a5e81e840176d9f381ec6f837&package_name=pck&platform=android'

安全接入方式

请求参数详情

参数名 类型 是否必选 赋值说明 样例 备注
app_key string 应用标识 8102b22a5e81e840176d9f381ec6f837  
time_stamp string 秒级时间戳 1493468759 安全接入必备,用于唯一地标识某一刻的时间
nonce_str string 随机字符串 dd599ef889859f9fe 安全接入必备
sign string 签名信息 99880aabb33f4def5c875875b6bdc3b1 安全接入必备
package_name string 包名 包名  
platform string 平台 android | ios | pc  

请求代码示例

HTTP 代码示例:

POST /v1/api/sdk/auth/init HTTP/1.1
Host: openapiai.xueersi.com
Content-Type: application/x-www-form-urlencoded
User-Agent: PostmanRuntime/7.19.0
Accept: */*
Cache-Control: no-cache
Postman-Token: 91b80eff-7643-4cf0-bfe6-f9c2e2372b7f,aed80690-a867-4a46-a64a-da3599832a99
Host: openapiai.xueersi.com
Accept-Encoding: gzip, deflate
Content-Length: 161
Cookie: X-Request-Id=6eb8a021da5e474a91237d3f2ca46c56; stu_area_id=11; aliyungf_tc=AQAAAPh6oUlovAAA1mK4NJS2lR4Z9km+
Connection: keep-alive
cache-control: no-cache

app_key=8102b22a5e81e840176d9f381ec6f837&package_name=pck&platform=android&time_stamp=1551174536&nonce_str=W8FI8oCp&sign=bf045ed767c232ad95b1926cfc938dc681aabb9e

cURL 代码示例:

curl -X POST \
  http://openapiai.xueersi.com/v1/api/sdk/auth/init \
  -H 'Accept: */*' \
  -H 'Accept-Encoding: gzip, deflate' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Length: 161' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Cookie: X-Request-Id=6eb8a021da5e474a91237d3f2ca46c56; stu_area_id=11; aliyungf_tc=AQAAAPh6oUlovAAA1mK4NJS2lR4Z9km+' \
  -H 'Host: openapiai.xueersi.com' \
  -H 'Postman-Token: 91b80eff-7643-4cf0-bfe6-f9c2e2372b7f,0af694ac-9bb2-4059-bd41-b452bff6319f' \
  -H 'User-Agent: PostmanRuntime/7.19.0' \
  -H 'cache-control: no-cache' \
  -d 'app_key=8102b22a5e81e840176d9f381ec6f837&package_name=pck&platform=android&time_stamp=1551174536&nonce_str=W8FI8oCp&sign=bf045ed767c232ad95b1926cfc938dc681aabb9e'

返回响应

返回格式

JSON格式

响应参数说明

参数名 类型 赋值说明 样例 备注
code int 返回码 0  
msg string 返回码解释 "请求成功"  
data obj 识别结果结构    

响应代码示例

响应Body:

{
  "code": 0,
  "msg": "请求成功",
  "data": null
}


// sdk过期
{
    "code": 25003,
    "msg": "SDK过期",
    "data": null
}

常见问题及反馈