停止使用的 API

扇贝网 API 帮助第3方开发者访问扇贝网数据。

本套 API 规范已经停止使用,请不要基于此开发新的应用。 如果你的应用是基于该 API 开发的,请尽快更新,我们将在一个月内删除现在的 API.

目前此套API仅仅能够被基于浏览器的扩展或者Bookmarklets使用,因为需要用户事先直接登录扇贝网。

基本概念:
Word: 一个英语单词。
Vocabulary: 关于某个单词的信息,包括单词本身,它的发音和释义。
Learning: 某个用户对于一个单词的学习记录,包括他对该词的熟悉程度,和复习次数。
Example: 用来示范特定词汇用法的例句及其释义。
Note: 任何关于特定词汇的额外信息,用来帮助更好的理解该词。

特殊符号:

{{}}: 表示一个变量,必须由应用提供
{}: 表示JSON格式的一个对象


内容

API:查询单词
API:添加词汇学习记录
API:获取词汇例句
API:添加例句
API:添加笔记


API:查询单词

URL: http://www.shanbay.com/api/word/{ { word } }
参数: { {word}}, 必须,查询参数
返回值

  1. 格式: JSON
  2. 返回例句:
    {"learning_id": 15265195, "voc": {"en_definitions": {"v": ["cut with a hacking tool", "be able to manage or manage successfully", "cut away"], "n": ["one who works hard at boring tasks", "a politician who belongs to a small clique that controls a political party for private rather than public ends", "a mediocre and disdained writer"]}, "definition": "n. u5288, u780d, u51fau79dfu9a6cu8f66nv. u5288, u780d, u5e72u54b3", "conent_id": 13686, "content": "hack", "pron": "hæk", "content_type": "vocabulary", "id": 13686 } }
  3. learning_id, 如果用户之前保存过该单词,那么就存在对应的词汇学习记录(Learning)实例,会返回它的id;注意词汇学习记录实例和词汇实例的id是不同的;如果没有相应词汇学习记录,那么这个返回值为0,同时应用可以提示用户添加该单词 voc:词汇实例
  4. en_definitions: object, 一个Json Dictionary 对象,索引为词性,值为英语解释
  5. definition: string, 词汇的中文解释
  6. content: string, 词汇的内容,也就是单词本身
  7. content_id: int, 词汇实例的id
  8. content_type: vocabulary|sentence, 只可能为两个字符串值,'vocabulary'或者'sentence',目前尚不支持'sentence'
  9. pron:string, 用国际音标表示的单词发音
  10. audio:string, 词汇的音频文件

API:保存单词

URL: http://www.shanbay.com/api/learning/add/{ { word} }
参数: { { word} } ,必须,待保存的单词
返回值

  1. 格式: JSON
  2. 返回learning_id:
    {"id": 15265195}
  3. id:如果一个单词成功保存,那么相应的词汇学习记录实例就会被创建,它的id会作为learning_id返回;如果失败,则返回值为0

API:获取词汇学习记录对应单词的例句(API最多返回两条例句)

URL: http://www.shanbay.com/api/learning/examples/{ { learning_id} }
参数: { { learning_id} } ,必须,词汇学习记录实例的id
返回值

  1. 格式: JSON
  2. 返回例句: {"examples_status": 1, "examples": [{"username": "system", "version": 0, "last": " down the saplings.", "likes": 3, "unlikes": 0, "mid": "hacked", "translation": "u628au5c0fu6811u780du5012", "userid": 0, "id": 239779, "first": ""},{}]}
  3. example_status: tinyint, 必须先检查这个值,然后才能继续解析其他返回内容
    -1: 指定词汇学习记录实例不存在,或者用户无权查看其内容
    0: 该单词尚未有例句
    1: 成功返回例句
  4. examples: Array, 例句对象数组
  5. id: 例句实例的id,
  6. username: 例句添加人的用户名,'system'表示该例句由系统添加,
  7. userid: 例句添加人的用户id,0表示该例句由系统添加,
  8. first: 例句中在单词之前的部分,
  9. mid: 单词或者其有效的变体,
  10. last: 例句中在单词之后的部分,
  11. translation: 例句的译文,
  12. version: 此为保留值,未来可能使用,现在请忽略
  13. likes: 喜欢该例句的用户数量
  14. unlikes: 不喜欢该例句的用户数量

API:添加例句

URL: http://www.shanbay.com/api/example/add/{ { learning_id} } ?sentence=&translation= 参数
{ { learning_id} } ,必须,对应单词相应词汇学习记录实例的id
{ { sentence} } ,必须,例句原文
{ { translation} } ,必须,例句的中文译文
注意:例句和译文的总长度不能超过300个字符,否则添加会失败。

返回值

  1. 格式: JSON
  2. 返回例句: {"example_status": 1, "example": {"username": "xiawinter", "version": 0, "last": "", "likes": 0, "unlikes": 0, "mid": "hack", "translation": "fanyi", "userid": 14, "id": 565622, "first": ""} }
  3. example_status: tinyint, 必须先检查这个值,然后才能继续解析其他返回内容
    -1: 指定词汇学习记录实例不存在,或者用户无权查看其内容
    0: 例句或者译文的长度为0
    1: 例句添加成功
    100: 例句未包含指定原词,或者它的有效变体
    300: 例句及其译文总长超过300个字符
  4. example: 用Dictionary格式表示的多个例句实例,参见API:获取词汇学习记录对应单词的例句

API:添加笔记

URL: http://www.shanbay.com/api/note/add/{ { learning_id} } ?note=
参数
{ { learning_id} } ,必须,对应单词相应词汇学习记录实例的id
{ { note} } ,必须,待添加的笔记内容
注意:笔记总长度不能超过300个字符,否则添加会失败。

返回值:

  1. 格式: JSON
  2. 返回笔记: {"note": {"username": "xiawinter", "userid": 14, "content": "test", "unlikes": 0, "likes": 0, "id": 153121}, "note_status": 1}
  3. note_status: tinyint, 必须先检查这个值,然后才能继续解析其他返回内容 -1: 指定词汇学习记录实例不存在,或者用户无权查看其内容
    0: 笔记总长为0
    1: 笔记添加成功
    300: 笔记总长超过300个字符
  4. note: 用Dictionary格式表示的笔记实例
  5. id: 笔记实例的id,
  6. username: 笔记添加人的用户名,
  7. userid: 笔记添加人的用户id,
  8. content: 笔记内容
  9. likes: 喜欢该笔记的用户人数,如果笔记为新增,则该值为0
  10. unlikes: 不喜欢该笔记的用户人数,如果笔记为新增,则该值为0

API:获取用户信息

URL: http://www.shanbay.com/api/user/info/
参数
该请求无需任何参数
返回值

  1. 格式: JSON
  2. 返回样例: {"username":"shanbay", "nickname":"bei bei", "userid":1, "result":1}
  3. result: int, 必须先检查这个值,然后才能继续解析其他返回内容
    0: 用户未授权
    1: 获取成功
  4. username: 扇贝登录帐号
  5. userid: 扇贝ID
  6. nickname: 用户昵称