介绍
有趣吧 通过API的方式开放一些应用接口,这篇文档用来介绍有趣吧目前开放的接口,为希望开发与有趣吧互通信工具的开发人员提供技术和文档服务。
概念
认证
除了公共信息(有趣吧网站不需要登录能够看到的信息),所有的API方法都需要进行用户认证, 所有的返回都于认证用户相关。例如,尝试获取一个设置为私密的且不是您的好友的用户信息时,将会返回失败状态。
有趣吧目前仅支持HTTP Basic Authentication认证协议。当进行Basic Auth,请使用您在有趣吧注册的邮件地址作为username部分,记录在Session或Cookie里的用户信息,通过参数传递的用户登录信息也被支持。
有趣吧的工程师们正在开发同Google's AuthSub or Flickr’s API Authentication相似的认证框架,这对注册第三方插件应用非常有用,有趣吧开发着论坛将在这些认证框架提供测试时通知大家。
多状态[RESTFull]结果传输
有趣吧 API力求根据用户的请求返回特定格式的数据,你可以发现我们提供的API中有一个重要的便利之处,通过简单的更改URI中的文件后缀名,您可以获得您想要的返回结果的格式,这篇文档中将说明每个方法中有哪些格式可以用。
有趣吧目前支持以下的四种数据返回格式:XML、JSON、RSS 和Atom,你可以在每次请求时根据请求的方法指定被支持的其中一种结果。
参数
一些API接受可选和必须的参数,当可用时,我们会在接下来的文档中提到这些参数。注意:当传送复杂字串时,请一定先将字串编码为UTF8格式,并再做一次Url Encode编码。
HTTP请求
除非特意指明,有趣吧的API开放通过HTTP GET方式的请求,需要提交信息或传送私密消息的请求应用POST方法。以下将说明,一些API方法将返回基于用户请求内容相关的信息,而有一些将返回同 客户端发送的HTTP头信息相关的一些信息。例如,多数支持since参数的方法,同样会对HTTP头中的If-Modified-Since这个Tag 感兴趣。需要主意的是,当某些行为即可以通过参数又可以通过HTTP头进行控制时,优先接受通过参数方式设定的值。
当请求格式为XML时,返回数据的编码为UTF-8格式,且我们会将一些外部符号编码为HTML实体(&#number; 或&text)格式。
HTTP状态码
有趣吧API将为每次请求返回合适的HTTP状态码。例如,当请求一个不存在的用户信息时,我们会返回404 Not Found;当一次请求没有被认证并授权时,我们会返回401 Not Authorized状态。
玩转有趣吧API的简便方法
如果您的系统安装有 curl (多数*nix系统应该会有),您已经有了一个非常强大的玩儿有趣吧API的工具。以下是使用curl的例子,非常简单哦:
- 获取有趣吧新鲜事:curl http://www.youqubar.com/api/status_json
- 获取用户最新发布的趣图: curl http://www.youqubar.com/api/user_comic_json?id=1
已经公开的API:
status [可用]
获取有趣吧网站最新的20条新鲜事,该方法不需要身份认证。
访问地址: http://www.youqubar.com/api/status_[json|xml|rss]
支持格式: xml, json, rss
参数列表:
- count(可选)-记录数,范围1-20,默认为20.
示例:http://www.youqubar.com/api/status_rss?count=10 - callback(可选)-javascript函数名,使用JSON格式时可用,将JSON对象作为参数直接调用
示例:http://www.youqubar.com/api/status_rss?callback=getStatuses
(现有应用:海内存知己,天涯共有趣;三生万物,万物有趣)
user_comic [可用]
获取有趣吧网站某一个用户最新发布的趣图,该方法不需要身份认证。
访问地址: http://www.youqubar.com/api/user_comic_[json|xml|rss]
支持格式: xml, json, rss
参数列表:
- id(必选)-用户在有趣吧的id
- count(可选)-记录数,范围1-20,默认为20.
示例:http://www.youqubar.com/api/user_comic_json?id=1&count=2
(现有应用:窗可贴)