renjian通过API的方式开放一些应用接口,这篇文档用来介绍renjian目前开放的接口,为希望开发基于renjian服务扩展的工具或应用的开发人员提供技术和文档服务。
除了部分API(如:公共时间线 ( public timeline ) )外,所有的API方法都必须要求用户认证,所有的返回都与认证用户相关。例如,尝试获取一个设置为私密的且不是您的好友的用户信息时,将会返回失败状态。
renjian API力求根据用户特定的请求返回对应特定格式的数据,您可以发现我们提供的API中有一个重要的便利之处,通过简单的更改URI中的文件后缀名,您可以获得您想要的返回结果的格式,这篇文档中将说明每个方法中有哪些格式可以用。
renjian目前支持JSON,XML格式的返回结果。
一些API接受可选和必须的参数,当参数可用时,我们会在接下来的文档中提到这些参数。注意:当传送复杂字串时,请一定先将字串编码为UTF-8格式,并再做一次URL编码 ( Encode )。
除非特意指明,renjian的开放API通过HTTP GET方式的调用,需要提交信息或传送私密消息(如悄悄话)时使用POST方法。
以下将说明API返回的信息格式的组成,一些API将返回与用户请求“内容”相关的信息,而有一些将返回与客户端发送的“HTTP头信息”相关的一些信息。例如,多数支持since参数的方法,同样会对HTTP头中的If-Modified-Since这个 HTTP头感兴趣。需要注意的是,当某些行为既可以通过参数又可以通过HTTP头进行控制时,优先接受通过参数方式设定的值。当请求返回数据时,返回数据的编码统一为UTF-8格式,且我们会将一些外部符号编码为HTML实体(&#number; 或&text)格式。
renjian API会对每次请求返回合适的HTTP状态。例如,当请求一个不存在的用户信息时,API会返回404 Not Found;当一次请求没有被认证并授权时,API会返回401 Not Authorized状态。
注意:
| 访问地址: | http://api.renjian.com/statuses/public_timeline.format |
| 支持格式: | json,xml |
| 参数列表: | |
| since_id: | 若提供此参数,则仅返回消息Id值大于since_id指定值的消息。 |
| max_id: | 若提供此参数,则仅返回消息Id值小于max_id指定值的消息。 |
| count: | 指定获取的最大数目,不能超过500。 |
| page: | 可选参数,默认为第一页,分页显示使用,只能是数字。1代表第一页,2代表第二页。 |
| Eg: |
|
| 访问地址: | http://api.renjian.com/statuses/friends_timeline.format |
| 支持格式: | json,xml |
| 参数列表: | |
| since_id: | 若提供此参数,则仅返回消息Id值大于since_id指定值的消息。 |
| max_id: | 若提供此参数,则仅返回消息Id值小于max_id指定值的消息。 |
| count: | 指定获取的最大数目,不能超过500。 |
| page: | 可选参数,默认为第一页,分页显示使用,只能是数字。1代表第一页,2代表第二页。 |
| Eg: |
|
| 访问地址: | http://api.renjian.com/statuses/user_timeline.format |
| 支持格式: | json,xml |
| 参数列表: | |
| since_id : | 若提供此参数,则仅返回消息Id值大于since_id指定值的消息。 |
| max_id : | 若提供此参数,则仅返回消息Id值小于max_id指定值的消息。 |
| count : | 指定获取的最大数目,不能超过500。 |
| page: | 可选参数,默认为第一页,分页显示使用,只能是数字。1代表第一页,2代表第二页。 |
| Eg: |
|
| 访问地址: | http://api.renjian.com/statuses/show/id.format |
| 支持格式: | json,xml |
| 参数列表: | |
| id: | 必需,待请求消息的Id,例如:http://api.renjian.com/statuses/show/123.json |
| Eg: |
|
| 访问地址: | http://api.renjian.com/statuses/update.format |
| 方法: | POST |
| 支持格式: | json,xml |
| 参数列表: | |
| text: | 必需,更新的消息内容, 请确定必要时需要进行UrlEncode编码,另外,不超过140. |
| in_reply_to_status_id: | 可选,如果这个是回复功能使用的,如果是回复别人的消息,那么,这个字段是必须 的。是被回复的信息的id。 |
| source: | 可选,指明这条信息是通过什么发送的,最长12个英文字母或6个汉字,如果需要在source字段加链接,请联系 @patric。 如(web,mobile,qq) |
| thumbnail : | 一般是指该status的略图. |
| original_url : | status的引用的链接地址 |
| status_type: | 链接的类型,目前只有三种 |
| TEXT: | 普通文本,不带链接的,thumbnail和original_url都为空 |
| PICTURE: | 图片,original_url为原始图片地址,thumbnail为缩略图地址 |
| LINK: | 带链接的status ,original_url为引用的链接,thumbnail为该链接的 缩略图地址(可选) |
| link_title: | 链接的title |
| link_desc: | 对链接的简短描述 |
| app_id: | 第三方APP的ID |
| app_name: | 第三方APP的名称 |
| app_category_id: | 第三方APP的分类 |
| app_ref_id: | 该条status对应第三方APP信息的ID |
| created_at: | 该条status的创建日期,默认为传到服务器时的日期 |
| picture: | 上传图片时,指定图片的路径,参照例子3,指定picture时,会忽略original_url和thumbnail两个参数 |
| Eg: |
|
| 支持格式: | json,xml |
| 参数列表: | |
| since_id: | 若提供此参数,则仅返回消息Id值大于since_id指定值的消息。 |
| max_id: | 若提供此参数,则仅返回消息Id值小于max_id指定值的消息。 |
| count: | 指定获取的最大数目,不能超过500。 |
| page: | 可选参数,默认为第一页,分页显示使用,只能是数字。1代表第一页,2代表第二页。 |
| Eg: |
|
| 访问地址: | http://api.renjian.com/statuses/destroy/id.format |
| 支持格式: | json,xml |
| 方法: | POST, DELETE |
| 参数列表: | |
| id: | 必须,待删除的消息Id |
| Eg: |
|
| 访问地址: | http://api.renjian.com/statuses/followings/ids.format |
| 支持格式: | json,xml |
| 参数列表: | |
| id: | 可选的,被请求用户的Id或者显示名称 例如: |
| Eg: |
|
| 访问地址: | http://api.renjian.com/statuses/followers/ids.format |
| 支持格式: | json,xml |
| id: | 必须,用户的Id或显示名称 |
| Eg: |
|
| 访问地址: | http://api.renjian.com/users/show/id.format |
| 支持格式: | json,xml |
| 参数列表: | |
| id: | 必须,用户的Id或显示名称 |
| Eg: |
|
| 访问地址: | http://api.renjian.com/direct_messages/receive.format |
| 支持格式: | json,xml |
| 参数列表: | |
| since_id: | 若提供此参数,则仅返回消息Id值大于since_id指定值的消息。 |
| max_id: | 若提供此参数,则仅返回消息Id值小于max_id指定值的消息。 |
| count: | 指定获取的最大数目,不能超过500。 |
| page: | 可选参数,默认为第一页,分页显示使用,只能是数字。1代表第一页,2代表第二页。 |
| Eg: | curl -u user:password http://api.renjian.com/direct_messages/receive.json |
| 访问地址: | http://api.renjian.com/direct_messages/sent.format |
| 支持格式: | json,xml |
| 参数列表: | |
| since_id: | 若提供此参数,则仅返回消息Id值大于since_id指定值的消息。 |
| max_id: | 若提供此参数,则仅返回消息Id值小于max_id指定值的消息。 |
| count: | 指定获取的最大数目,不能超过500。 |
| page: | 可选参数,默认为第一页,分页显示使用,只能是数字。1代表第一页,2代表第二页。 |
| Eg: | curl -u user:password http://api.renjian.com/direct_messages/sent.json |
| 访问地址: | http://api.renjian.com/direct_messages/new.format |
| 支持格式: | json,xml |
| 方法: | POST |
| 参数列表: | |
| user: | 必须, 接受消息的用户Id或显示名称; |
| text: | 必须, 待发送消息的正文,另外,不超过140个汉字或英文。 |
| Eg: |
curl -u user:password -d 'user=2&text=test for doc' http://api.renjian.com/direct_messages/new.json |
| 访问地址: | http://api.renjian.com/direct_messages/destroy/id.format |
| 支持格式: | json,xml |
| 方法: | POST,DELETE |
| 参数列表: | |
| id: | 必须,待删除消息的Id. |
| Eg: |
|
| 访问地址: | http://api.renjian.com/friendships/create.format |
| 支持格式: | json,xml |
| 方法: | POST |
| 参数列表: | |
| id: | 必须的。传入待建立好友关系的用户的Id或显示名称。 |
| Eg: | curl -u user:password -d 'id=2' http://api.renjian.com/friendships/create.json user关注id为2的用户 |
| 访问地址: | http://api.renjian.com/friendships/destroy.format |
| 支持格式: | json,xml |
| 方法: | POST,DELETE |
| 参数列表: | |
| id: | 必须的。传入待取消好友关系的用户的Id或显示名称。 |
| Eg: | curl -u user:password -d 'id=2' http://api.renjian.com/friendships/destory.json |
| 访问地址: | http://api.renjian.com/friendships/exists.format |
| 支持格式: | json,xml |
| 方法: | GET |
| 参数列表: | |
| user_a: | 必须 |
| user_b: | 必须 |
| Eg: |
curl -u user:password 'http://api.renjian.com/friendships/exists.json?user_a=1&user_b=2 user_a是否关注了user_b |
| 访问地址: | http://api.renjian.com/followings/ids.format |
| 支持格式: | json,xml |
| 方法: | GET |
| 参数列表: | |
| id: | 必须,用户Id. |
| Eg: |
|
| 访问地址: | http://api.renjian.com/followers/ids.format |
| 支持格式: | json,xml |
| 方法: | GET |
| 参数列表: | |
| id: | 必须,用户Id. 例如: http://api.renjian.com/followers/12345.json或 http://api.renjian.com/followers/23456.json |
| Eg: |
|
| 访问地址: | http://api.renjian.com/favorites/list.format |
| 支持格式: | json,xml |
| 参数列表: | |
| page: | 目前只支持page参数 |
| Eg: |
|
| 访问地址: | http://api.renjian.com/favorites/create/id.format |
| 支持格式: | json,xml |
| 方法: | POST |
| 参数列表: | |
| id: | 必须,用户要收藏的信息id。 |
| Eg: |
|
| 访问地址: | http://api.renjian.com/favorites/destroy/id.format |
| 支持格式: | json,xml |
| 方法: | POST,DELETE |
| 参数列表: | |
| id: | 用户要删除收藏的信息id。 |
| Eg: |
|
| 访问地址: | http://api.renjian.com/account/update_profile.format |
| 支持格式: | json,xml |
| 参数列表: | |
| nickname: | 用户的昵称 |
| username: | 用户名 |
| location: | 用户的所在地 |
| email: | 用户的联系email |
| url: | |
| description: | |
| Eg: | curl -u user:gemini -d 'nickname=xx&username=xx&email=xx&url=xx&location=xx&description=xxx' http://api.renjian.com/account/update_profile.json |
| 访问地址: | http://api.renjian.com/blocks/create.json |
| 支持格式: | json,xml |
| 参数列表: | |
| id: | |
| Eg: |
|
| 访问地址: | http://api.renjian.com/blocks/destory.json |
| 支持格式: | json,xml |
| 参数列表: | |
| id: | |
| Eg: |
|
为了避免API每次都传用户名和密码,可以通过verify方法执行类似登陆的一个操作,服务器会在cookie中加一个名为_renjian_sess_c的cookie,用户以后可以每次把这个值放在request的cookies中,这样就可避免每次都传用户名和密码过来
| 访问地址: | http://api.renjian.com/account/verify_credentials |
| 支持格式: | json,xml |
| 方法: | POST,HEAD |
| Eg: |
|
这部分API还在测试中,以后可能会做更改,如排序等,目前以下三个API都需要验证,以后会根据需要去掉。大家如果有任何想法或建议,可以@niedhui 或发邮件给dianhui.nie@gmail.com.:)
返回当前登陆用户发起与的会话
| 访问地址: | http://api.renjian.com/conversations/my_conversations.format |
| 支持格式: | json,xml |
| 参数列表: | |
| since_id: | 若提供此参数,则仅返回消息Id值大于since_id指定值的消息。 |
| count: | 指定获取的最大数目,不能超过500。 |
| page: | 可选参数,默认为第一页,分页显示使用,只能是数字。1代表第一页,2代表第二页。 |
| Eg: |
|
由于某种原因,这个API返回的status排序和其它timeline的顺序不一样,其他API的第一页返回的是最新的,这个API的第一页返回的是最旧的, 这部分以后有可能会和其它timeline保持一致
根据传入的status的ID返回status对应的会话里的所有status,如果传入的ID不构成会话,则会返回404
| 访问地址: | http://api.renjian.com/conversations/show_by_status/id.format |
| 支持格式: | json,xml |
| 参数列表: | |
| id: | status 的ID |
| count: | 指定获取的最大数目,不能超过500。 |
| page: | 可选参数,默认为第一页,分页显示使用,只能是数字。1代表第一页,2代表第二页。 |
| show_all: | 可选参数,如果这个参数为true,则返回会话里所有的status,忽略page和count参数。 |
| Eg: |
|
由于某种原因,这个API返回的status排序和其它timeline的顺序不一样,其他API的第一页返回的是最新的,这个API的第一页返回的是最旧的, 这部分以后有可能会和其它timeline保持一致
如果你知道某会话ID,可以直接据会话ID来获取所有会话对应的status
| 访问地址: | http://api.renjian.com/conversations/statuses.format |
| 支持格式: | json,xml |
| 参数列表: | |
| count: | 指定获取的最大数目,不能超过500。 |
| page: | 可选参数,默认为第一页,分页显示使用,只能是数字。1代表第一页,2代表第二页。 |
| show_all: | 可选参数,如果这个参数为true,则返回会话里所有的status,忽略page和count参数。 |
| since_id: | 若提供此参数,则仅返回消息Id值大于since_id指定值的消息。 |
| Eg: |
|
返回某个圈子的timeline
| 访问地址: | http://api.renjian.com/tag/tag_timeline/tagName.format |
| 支持格式: | json,xml |
| 方法: | GET,HEAD |
| Eg: |
|
返回某个圈子精华的timeline
| 访问地址: | http://api.renjian.com/tag/tag_essence_timeline/tagName.format |
| 支持格式: | json,xml |
| 方法: | GET,HEAD |
| Eg: |
|
如果某些字段的值为null,返回的数据中会忽略该字段
| id: | message的id |
| sender_id: | 发送人的ID |
| text: | 发送的内容 |
| recipient_id: | 接收人的ID |
| created_at: | 发送时间(unix time) |
| sender_screen_name: | 发送人的screen name |
| recipient_screen_name: | 接收人的screen name |
| sender: | 发送人的详细信息 |
| recipient: | 接收人的详细信息 |
| id: | status的Id |
| created_at: | status的创建日期 |
| text: | status的文本内容 |
| source: | status的来源 |
| truncated: | status的text是否因为过长而截断 |
| in_reply_to_status_id: | 回应的status的id |
| in_reply_to_user_id: | 回应的status的发送者的id |
| in_reply_to_screen_name: | 回应的status的作者的screenName |
| favorited: | 当前用户是否收藏了这条status |
| original_url: | 引用的链接 |
| status_type: | status的类型 |
| link_title: | 引用的链接的title |
| link_desc: | 引用的链接的描述 |
| thumbnail: | 缩略图 |
| app_id: | |
| app_name: | |
| app_category_id: | |
| app_ref_id: | |
| root_screen_name: | |
| root_status_id: | 发生转贴时,整个链中的第一条status的id |
api配图: |
|
| id: | 会话的Id |
| last_status_id: | 会话最后一条status的id |
| text: | 会话的文本内容(第一条status的text) |
| unread_count: | 该会话未读status数 |
| owner: | 会话的发起者(拥有者) |