阅读:68518次
评论:84条
更新时间:2011-10-28
ITeye目前提供如下的API,更多API将会陆续推出。
(文档编写中...)
(文档编写中...)
用户认证
目前所有的API都需要认证,验证方式为HTTP Basic Access Authentication。
如果你的系统有curl,可以用curl来非常简单地来尝试这些API,以用户认证的API为例子:
认证成功返回JSON格式字符串:
{"domain": "博客子域名", "name": "用户名", "id": 用户ID}
认证失败返回字符串:
error.auth.fail
对应的HTTP Response Code为401
为了避免暴力破解密码,如果某个IP的连续认证错误超过6次,在一个小时内将会无法进行认证,返回字符串:
error.auth.over.limit
对应的HTTP Response Code为401
为了避免对服务器过大压力,限制单个IP的单个用户请求,每小时不能超过300次,超过的用户在一小时内调用任何API都会返回字符串:
error.api.over.limit
对应的HTTP Response Code为400
如果你的系统有curl,可以用curl来非常简单地来尝试这些API,以用户认证的API为例子:
curl -u 用户名:密码 http://api.iteye.com/api/auth/verify
认证成功返回JSON格式字符串:
{"domain": "博客子域名", "name": "用户名", "id": 用户ID}
认证失败返回字符串:
error.auth.fail
对应的HTTP Response Code为401
为了避免暴力破解密码,如果某个IP的连续认证错误超过6次,在一个小时内将会无法进行认证,返回字符串:
error.auth.over.limit
对应的HTTP Response Code为401
为了避免对服务器过大压力,限制单个IP的单个用户请求,每小时不能超过300次,超过的用户在一小时内调用任何API都会返回字符串:
error.api.over.limit
对应的HTTP Response Code为400
闲聊API
基本数据参数说明
返回值中如果包含闲聊记录,统一都是JSON格式的字符串,有如下属性
返回值每页显示30条闲聊记录
可选参数的统一定义:
last_id: 只抓取大于这个id的闲聊记录
page: 抓取第N页记录
闲聊一下
URL: http://api.iteye.com/api/twitters/list
返回值: 包含闲聊记录的JSON格式字符串(数组格式)
可选参数: last_id, page
我的闲聊
URL: http://api.iteye.com/api/twitters/my
返回值: 包含闲聊记录的JSON格式字符串 (数组格式)
可选参数: last_id, page
@我的
URL: http://api.iteye.com/api/twitters/replies
返回值: 包含闲聊记录的JSON格式字符串(数组格式)
可选参数: last_id, page
全站闲聊
URL: http://api.iteye.com/api/twitters/all
返回值: 包含闲聊记录的JSON格式字符串(数组格式)
可选参数: last_id, page
发布新闲聊
URL: http://api.iteye.com/api/twitters/create
返回值: 新发布成功的闲聊记录的JSON格式字符串
必需参数:
body: 闲聊内容
可选参数:
reply_to_id: 回复某条闲聊的id
via: 通过什么发布
删除闲聊
URL: http://api.iteye.com/api/twitters/destroy
返回值: 成功删除的闲聊id,如果失败,返回"error.record.not.found"字符串
通过ID获取闲聊记录
URL: http://api.iteye.com/api/twitters/show
必需参数:
id: 你需要获取的闲聊id,如果要一次获取多个记录,可以用逗号分隔传递(id=1,2,3),最多支持30个id
返回值:
找不到任何记录,返回"error.record.not.found"字符串
获取一条记录,返回该闲聊记录的JSON格式字符串
获取多条记录,多条闲聊记录的JSON格式字符串(数组格式)
返回值中如果包含闲聊记录,统一都是JSON格式的字符串,有如下属性
id: 闲聊ID created_at: 创建时间 body: 闲聊内容 user: 闲聊发布者,属性如下 name: 用户名 logo: 头像文件路径(最大宽高150x150),如果要获取缩略图,路径为xxx-thumb.jpg(最大宽高48x48) domain: 用户的博客子域名 receiver: 闲聊接收者,属性同user,可能为空 reply_to_id: 回复某条闲聊ID,可能为空 via: 通过什么发布
返回值每页显示30条闲聊记录
可选参数的统一定义:
last_id: 只抓取大于这个id的闲聊记录
page: 抓取第N页记录
闲聊一下
URL: http://api.iteye.com/api/twitters/list
返回值: 包含闲聊记录的JSON格式字符串(数组格式)
可选参数: last_id, page
我的闲聊
URL: http://api.iteye.com/api/twitters/my
返回值: 包含闲聊记录的JSON格式字符串 (数组格式)
可选参数: last_id, page
@我的
URL: http://api.iteye.com/api/twitters/replies
返回值: 包含闲聊记录的JSON格式字符串(数组格式)
可选参数: last_id, page
全站闲聊
URL: http://api.iteye.com/api/twitters/all
返回值: 包含闲聊记录的JSON格式字符串(数组格式)
可选参数: last_id, page
发布新闲聊
URL: http://api.iteye.com/api/twitters/create
返回值: 新发布成功的闲聊记录的JSON格式字符串
必需参数:
body: 闲聊内容
可选参数:
reply_to_id: 回复某条闲聊的id
via: 通过什么发布
删除闲聊
URL: http://api.iteye.com/api/twitters/destroy
返回值: 成功删除的闲聊id,如果失败,返回"error.record.not.found"字符串
通过ID获取闲聊记录
URL: http://api.iteye.com/api/twitters/show
必需参数:
id: 你需要获取的闲聊id,如果要一次获取多个记录,可以用逗号分隔传递(id=1,2,3),最多支持30个id
返回值:
找不到任何记录,返回"error.record.not.found"字符串
获取一条记录,返回该闲聊记录的JSON格式字符串
获取多条记录,多条闲聊记录的JSON格式字符串(数组格式)
用户收藏API
基本数据参数说明
返回值中如果包含收藏记录,统一都是JSON格式的字符串,有如下属性
列出用户收藏
URL: http://api.iteye.com/api/user_favorites/list
返回值: 包含用户收藏的JSON格式字符串(数组格式)
注意:目前是全部列出用户的收藏数据,如果用户收藏非常多的话,速度可能会比较慢,建议一次获取以后进行缓存。以后可能会加入分页的功能。
新加收藏
URL: http://api.iteye.com/api/user_favorites/create
返回值: 添加成功的用户收藏的JSON格式字符串
必需参数:
url: 收藏文章的链接
title: 收藏文章的标题
可选参数:
description: 描述
tag_list: 标签(多个标签用半角英文逗号隔开)
share: 是否公开和大家共享,用false代表不公开(默认公开)
更新收藏
URL: http://api.iteye.com/api/user_favorites/update
返回值: 更新成功的用户收藏的JSON格式字符串,如果找不到对应id对应的数据,返回"error.record.not.found"字符串
必需参数:
id: 更新用户收藏的ID
其他参数同“新加收藏”
删除收藏
URL: http://api.iteye.com/api/user_favorites/destroy
返回值: 删除成功的记录id,如果找不到对应id对应的数据,返回"error.record.not.found"字符串
必需参数:
id: 删除用户收藏的ID
返回值中如果包含收藏记录,统一都是JSON格式的字符串,有如下属性
id: 收藏ID url: 收藏的链接 title: 收藏的标题 description: 描述 cached_tag_list:标签(多个标签用半角英文逗号隔开) public: 代表是公开收藏还是私人收藏 created_at: 添加该收藏的时间
列出用户收藏
URL: http://api.iteye.com/api/user_favorites/list
返回值: 包含用户收藏的JSON格式字符串(数组格式)
注意:目前是全部列出用户的收藏数据,如果用户收藏非常多的话,速度可能会比较慢,建议一次获取以后进行缓存。以后可能会加入分页的功能。
新加收藏
URL: http://api.iteye.com/api/user_favorites/create
返回值: 添加成功的用户收藏的JSON格式字符串
必需参数:
url: 收藏文章的链接
title: 收藏文章的标题
可选参数:
description: 描述
tag_list: 标签(多个标签用半角英文逗号隔开)
share: 是否公开和大家共享,用false代表不公开(默认公开)
更新收藏
URL: http://api.iteye.com/api/user_favorites/update
返回值: 更新成功的用户收藏的JSON格式字符串,如果找不到对应id对应的数据,返回"error.record.not.found"字符串
必需参数:
id: 更新用户收藏的ID
其他参数同“新加收藏”
删除收藏
URL: http://api.iteye.com/api/user_favorites/destroy
返回值: 删除成功的记录id,如果找不到对应id对应的数据,返回"error.record.not.found"字符串
必需参数:
id: 删除用户收藏的ID
站内短信API
基本数据参数说明
返回值中如果包含站内短信记录,统一都是JSON格式的字符串,有如下属性
收件箱
URL: http://api.iteye.com/api/messages/inbox
返回值: 包含闲聊记录的JSON格式字符串(数组格式,每页15条记录)
可选参数:
last_id: 只抓取大于这个id的站内短信记录
page: 抓取第N页记录
注意:调用这个方法以后,如果返回值中有包含未读短信,在下一次调用的时候将会标记为已读
发送站内短信
URL: http://api.iteye.com/api/messages/create
返回值: 新发送成功短信的JSON格式字符串,如果失败,返回"error.具体的错误信息"字符串
必需参数:
title: 短信标题
body: 短信内容
receiver_name: 收件人用户名
回复站内短信
URL: http://api.iteye.com/api/messages/reply
返回值: 新回复成功短信的JSON格式字符串,如果失败,返回"error.具体的错误信息"字符串
必需参数:
id: 要回复的短信ID
title: 短信标题
body: 短信内容
删除站内短信
URL: http://api.iteye.com/api/messages/destroy
返回值: 成功删除的短信id,如果失败,返回"error.record.not.found"字符串
必需参数:
id: 要删除的短信ID
返回值中如果包含站内短信记录,统一都是JSON格式的字符串,有如下属性
id: 短信ID created_at: 创建时间 system_notice: 是否系统短信的标记 has_read: 是否已读的标记 attach: 是否有附件的标记 title: 短信标题 plain_body: 短信内容(已经去除HTML标签) sender: 短信发送者,属性如下 name: 用户名 logo: 头像文件路径(最大宽高150x150),如果要获取缩略图,路径为xxx-thumb.jpg(最大宽高48x48) domain: 用户的博客子域名 receiver: 闲聊接收者,属性同sender
收件箱
URL: http://api.iteye.com/api/messages/inbox
返回值: 包含闲聊记录的JSON格式字符串(数组格式,每页15条记录)
可选参数:
last_id: 只抓取大于这个id的站内短信记录
page: 抓取第N页记录
注意:调用这个方法以后,如果返回值中有包含未读短信,在下一次调用的时候将会标记为已读
发送站内短信
URL: http://api.iteye.com/api/messages/create
返回值: 新发送成功短信的JSON格式字符串,如果失败,返回"error.具体的错误信息"字符串
必需参数:
title: 短信标题
body: 短信内容
receiver_name: 收件人用户名
回复站内短信
URL: http://api.iteye.com/api/messages/reply
返回值: 新回复成功短信的JSON格式字符串,如果失败,返回"error.具体的错误信息"字符串
必需参数:
id: 要回复的短信ID
title: 短信标题
body: 短信内容
删除站内短信
URL: http://api.iteye.com/api/messages/destroy
返回值: 成功删除的短信id,如果失败,返回"error.record.not.found"字符串
必需参数:
id: 要删除的短信ID
疑难问题
1、用curl测试成功,但是用Java编写程序发现失败,说拒绝连接
通过应用程序访问API的时候,请在User-Agent信息上面声明:"JavaEye API Client"
通过应用程序访问API的时候,请在User-Agent信息上面声明:"JavaEye API Client"
84 楼 areful 2013-03-23 12:46
用户的账户隐私就没有安全性可言了.如果用客户端做一个应用,然后弹密码框告知用户输入用户名密码,就可以登录,这样的客户端你敢用吗,能确保这个客户端不会收集你的账户信息然后发送到其他地方?
参考一下新浪微博的开放API吧,OAuth研究一下.
83 楼 tomfish88 2012-02-04 16:47
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="keyword" content="JavaEye,IT,开发,交流,社区,java, ruby, ajax, agile" />
<title>您的访问请求被拒绝 - JavaEye技术社区</title>
<style type="text/css">
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
display:block;
}
.left {
float: left;
}
h1 {font-size: 20px;color: #6293BB;}
p {font-size: 14px;color: #6293BB;}
</style>
</head>
<body>
<div style="padding:50px 0 0 300px">
<h1>您的访问请求被拒绝</h1>
</div>
<div class="clearfix">
<div class="left" style="padding-left:120px">
<img src="/images/filenotfound.jpg" width="128" height="128" />
</div>
<div class="left" style="width:700px;padding:30px 0 0 30px">
<p>您可能使用了网络爬虫抓取JavaEye网站页面!</p>
<p>JavaEye网站不允许您使用网络爬虫对JavaEye进行恶意的网页抓取,请您立刻停止该抓取行为!</p>
<p>如果您的网络爬虫不属于恶意抓取行为,希望JavaEye网站允许你进行网页抓取,请和JavaEye管理员联系,取得授权: webmaster<img src='/images/email.gif' alt="Email" />support.javaeye.com</p>
<p>如果您确实使用浏览器访问,但是被错误的识别为网络爬虫,请将您浏览器发送的“User Agent”信息告知我们,帮助我们解决错误: webmaster<img src='/images/email.gif' alt="Email" />support.javaeye.com</p>
</div>
</div>
<div style="padding:20px 0 0 500px">
<a href="http://www.javaeye.com"><img src='/images/logo_small.gif' border='0'></a>
</div>
</body>
</html>
82 楼 tomfish88 2012-02-04 16:46
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="keyword" content="JavaEye,IT,开发,交流,社区,java, ruby, ajax, agile" />
<title>您的访问请求被拒绝 - JavaEye技术社区</title>
<style type="text/css">
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
display:block;
}
.left {
float: left;
}
h1 {font-size: 20px;color: #6293BB;}
p {font-size: 14px;color: #6293BB;}
</style>
</head>
<body>
<div style="padding:50px 0 0 300px">
<h1>您的访问请求被拒绝</h1>
</div>
<div class="clearfix">
<div class="left" style="padding-left:120px">
<img src="/images/filenotfound.jpg" width="128" height="128" />
</div>
<div class="left" style="width:700px;padding:30px 0 0 30px">
<p>您可能使用了网络爬虫抓取JavaEye网站页面!</p>
<p>JavaEye网站不允许您使用网络爬虫对JavaEye进行恶意的网页抓取,请您立刻停止该抓取行为!</p>
<p>如果您的网络爬虫不属于恶意抓取行为,希望JavaEye网站允许你进行网页抓取,请和JavaEye管理员联系,取得授权: webmaster<img src='/images/email.gif' alt="Email" />support.javaeye.com</p>
<p>如果您确实使用浏览器访问,但是被错误的识别为网络爬虫,请将您浏览器发送的“User Agent”信息告知我们,帮助我们解决错误: webmaster<img src='/images/email.gif' alt="Email" />support.javaeye.com</p>
</div>
</div>
<div style="padding:20px 0 0 500px">
<a href="http://www.javaeye.com"><img src='/images/logo_small.gif' border='0'></a>
</div>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="keyword" content="JavaEye,IT,开发,交流,社区,java, ruby, ajax, agile" />
<title>您的访问请求被拒绝 - JavaEye技术社区</title>
<style type="text/css">
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
display:block;
}
.left {
float: left;
}
h1 {font-size: 20px;color: #6293BB;}
p {font-size: 14px;color: #6293BB;}
</style>
</head>
<body>
<div style="padding:50px 0 0 300px">
<h1>您的访问请求被拒绝</h1>
</div>
<div class="clearfix">
<div class="left" style="padding-left:120px">
<img src="/images/filenotfound.jpg" width="128" height="128" />
</div>
<div class="left" style="width:700px;padding:30px 0 0 30px">
<p>您可能使用了网络爬虫抓取JavaEye网站页面!</p>
<p>JavaEye网站不允许您使用网络爬虫对JavaEye进行恶意的网页抓取,请您立刻停止该抓取行为!</p>
<p>如果您的网络爬虫不属于恶意抓取行为,希望JavaEye网站允许你进行网页抓取,请和JavaEye管理员联系,取得授权: webmaster<img src='/images/email.gif' alt="Email" />support.javaeye.com</p>
<p>如果您确实使用浏览器访问,但是被错误的识别为网络爬虫,请将您浏览器发送的“User Agent”信息告知我们,帮助我们解决错误: webmaster<img src='/images/email.gif' alt="Email" />support.javaeye.com</p>
</div>
</div>
<div style="padding:20px 0 0 500px">
<a href="http://www.javaeye.com"><img src='/images/logo_small.gif' border='0'></a>
</div>
</body>
</html>
81 楼 tjuking 2011-11-24 16:57
80 楼 silymer 2011-10-24 15:10
79 楼 坏小子小滨 2011-08-10 08:22
78 楼 sunzhanchao 2011-07-22 10:19
77 楼 b_l_east 2011-07-15 12:29
76 楼 grandboy 2011-06-25 16:20
http://api.iteye.com/api/twitters/destroy
今天看到这里API设计,想请问设计者为什么这里没有使用POST和DELETE方法分别去对应create和destroy两个动作,而是使用两个URL来处理呢? 既然是RESTful,我觉得应该按照它的思想去做。不知道作者出于什么考虑?
75 楼 bbbbb1202 2011-05-19 08:58
74 楼 xyqck163 2011-04-21 11:16
73 楼 luoyl 2011-03-30 12:59
72 楼 songfantasy 2011-02-24 17:17
71 楼 joyoytj 2011-01-31 14:28
70 楼 fooky 2011-01-20 16:57
69 楼 血冷狼 2011-01-15 17:34
比如说用户认证那里,是直接在浏览器的地址栏里输http://api.javaeye.com/api/auth/verify吗?
我输了几次 返回的都是error.auth.fail
68 楼 lupingui 2011-01-05 14:07
67 楼 richard_2010 2010-12-25 11:30
66 楼 ctfzh 2010-12-20 21:40
65 楼 yeshaoting 2010-12-14 20:34
64 楼 生活小丑 2010-11-24 18:45
63 楼 hj_Sunflower 2010-11-14 11:31
62 楼 yelang2009 2010-10-20 22:45
61 楼 飞语001 2010-10-13 07:47
60 楼 lilongsy 2010-09-30 15:34
59 楼 lostpast 2010-09-16 14:00
58 楼 cixi2010 2010-08-10 21:31
57 楼 qiang303 2010-08-06 16:06
56 楼 xmind 2010-07-23 11:24
55 楼 diffuser 2010-06-28 21:01
但是依然告诉我使用了网络爬虫。
谁能告诉我怎么回事?