|
DiguApi
由于嘀咕和火兔都是微云合作者,API域名更换api.digu.com和apidev.digu.com为api.minicloud.com.cn即可使用,旧的域名不在服务 新的返回数据格式请查阅:http://code.google.com/p/digu-api/wiki/DiguApiDataBooklet API文档目录:
嘀咕开放的API文档Digu通过API的方式开放一些应用接口,这篇文档用来介绍Digu目前开放的接口,为希望开发基于Digu服务扩展的工具或应用的开发人员提供技术和文档服务。 认证除了部分API(如:公共时间线 ( public timeline ) )外,所有的API方法都必须要求用户认证,所有的返回都 与认证用户相关。例如,尝试获取一个设置为私密的且不是您的好友的用户信息时,将会返回失败状态。 Digu目前仅支持HTTP Basic Authentication验证机制。当使用HTTP Basic Authentication时,请使用您在Digu注册的“用户名”作为Session或Cookie的“用户名”部分的内容。 多状态[RESTFull]结果传输Digu API力求根据用户特定的请求返回对应特定格式的数据,您可以发现我们提供的API中有一个重要的便利之处,通过简单的更改URI中的文件后缀名,您可以获得您想要的返回结果的格式,这篇文档中将说明每个方法中有哪些格式可以用。 Digu目前支持以下的四种数据返回格式:XML、JSON、RSS、Atom,您可以在每次请求时使用不同的请求方法指定不同的返回结果。 参数 一些API接受可选和必须的参数,当参数可用时,我们会在接下来的文档中提到这些参数。注意:当传送复杂字串时,请一定先将字串编码为UTF-8格式,并再做一次URL编码 ( Encode )。 HTTP请求除非特意指明,Digu的开放API通过HTTP GET方式的调用,需要提交信息或传送私密消息时使用POST方法。 以下将说明API返回的信息格式的组成,一些API将返回与用户请求“内容”相关的信息,而有一些将返回与客户端发送的“HTTP头信息”相关的一些信息。例如,多数支持since参数的方法,同样会对HTTP头中的If-Modified-Since这个 HTTP头 感兴趣。需要注意的是,当某些行为既可以通过参数又可以通过HTTP头进行控制时,优先接受通过参数方式设定的值。 当请求返回数据时,返回数据的编码统一为UTF-8格式,且我们会将一些外部符号编码为HTML实体(&#number; 或&text)格式。 HTTP状态码Digu API会对每次请求返回合适的HTTP状态。例如,当请求一个不存在的用户信息时,API会返回404 Not Found;当一次请求没有被认证并授权时,API会返回401 Not Authorized状态。 玩转DiguAPI的简便方法如果您的系统安装有 curl ( 多数*nix系统应该会有 ) ,您已经有了一个非常强大的玩儿Digu API的工具。以下是使用curl的例子,非常简单哦:
curl http://api.digu.com/statuses/public_timeline.xml
curl -u email:password http://api.digu.com/statuses/friends_timeline.xml
curl --head email:password http://api.digu.com/statuses/friends_timeline.json 用户Digu状态相关方法public_timeline [可用]返回未设置私密的用户 ( 必须有自定义的用户头像 ) 的最近20条Digu消息,该方法不需要身份认证。
这四个参数可以随意结合使用。跟参数的位置没有关系。如:
friends_timeline [可用]返回最近24小时内的最新的20条认证用户及其好友更新的Digu消息。
user_timeline [可用]返回认证用户最近24小时内最新更新的20条Digu消息,同样,通过给定userIdOrName参数,可以用来请求其他用户的最近的Digu消息更新。该API可以不认证。如果被查看着设置了个人隐私,那么只有跟随他的人才可以看得到。因此就需要认证才可以看得到的。
show [可用]返回指定Id的一条Digu消息,返回信息中包含作者信息。
id 必须,待请求消息的id,例如:http://api.digu.com/statuses/show/123.xml 或者 http://api.digu.com/statuses/show.xml?id=123 update [可用]更新认证用户的Digu消息,必须包含content参数,且必须以POST方式请求。 成功时按指定格式返回当前的Digu消息。
replies [可用]显示20条最近的对认证用户的回复Digu消息, ( 消息前缀为 @username ) 。该API只开放给认证用户,请求其他用户的收到的回复消息列表是非法的,无论其他用户设置私密与否。
destroy [可用]根据指定的id删除一条Digu消息,认证用户必须是消息的作者。
id 必须,待删除的Digu消息Id, 例如:http://api.digu.com/statuses/destroy/12345.json 或者 http://api.digu.com/statuses/destroy.xml?id=23456 用户操作接口friends [可用]返回认证用户的朋友列表,内含每个用户的当前Digu信息。这个方法同样可以用来请求其他用户的朋友列表,通过下面指明的方法传递id参数。
四种形式均可
friends_count[可用]new返回认证用户或者指定用户的朋友列表数。这个方法同样可以用来请求其他用户的朋友列表,通过下面指明的方法传递参数。
http://api.digu.com/statuses/friends_count.format?friendUserId=322、 http://api.digu.com/statuses/friends_count.format?friendUsername=abc 或 http://api.digu.com/statuses/friends_count/friendUserIdOrName.format 四种形式均可
三个参数都没有时,表示显示所有的跟随的朋友的信息
followers [可用]返回认证用户的订阅者,内含每个订阅者的当前Digu消息。与friends一样,只需要把friends地址中的friends替换为followers即可,其余一切包括参数都不需要改变,都是一样的用法。
followers_count [可用]new返回认证用户或者指定用户的跟随者数量。与friends_count一样,只需要把friends_count地址中的friends_count替换为followers_count即可,其余一切包括参数都不需要改变,都是一样的用法。
show [可用]显示指定用户的扩展信息,需要给定用户的id或显示名称。扩展信息包括用户的页面设置、Digu次数等,因此第三方应用的开发者可以根据这些信息为用户提供合适的主题。 注意:本API调用请求必须发自合法Digu用户,不论请求自己/他人的扩展信息。
例如:http://api.digu.com/users/show/chen.json 或 http://api.digu.com/users/show/chen.xml 注意:如果您请求的用户仅对其好友开放,那么他目前的Digu状态则为:"我只和我的好友分享我的嘀咕。" 悄悄话操作方法messages [可用]返回发送给认证用户的消息列表
message :0 表示悄悄话,1 表示戳一下,2 表示升级通知,3 表示代发通知,4 表示系统消息。100表示不分类,都查询。其余参数跟public_timeline的参数列表使用方法一样,不再冗余陈述 new [可用]以认证用户的身份向指定的其他用户发送一条有向消息,下面列出的参数content和receiveUserId 都是必须的,本API必须使用POST方法提交。当提交成功时,返回提交的消息。
destroy [可用]通过给定的消息id,删除指定的有向消息,认证用户只能删除其作为接受者收到的消息。使用POST和GET方法都可以 访问地址: http://api.digu.com/messages/handle/destroy/id.format 或者http://api.digu.com/messages/handle/destroy.format?id=id
好友关系操作方法create [可用]创建认证用户与给定的id参数指定的用户之间的好友关系。返回结果为:0表示你申请者被该用户屏蔽,不能与他成为好友关系;-1表示跟随失败;-2表示跟随的人数超过了1000,系统不允许再跟随其他人;-3表示被跟随的人设置了隐私保护,提交申请失败;1表示跟随成功;2表示已经跟随;3表示被跟随的用户设置了隐私保护,已经提交了跟随申请。new
id 必须,传入待建立好友关系的用户的id或显示名称。如:http://api.digu.com/friendships/create.json?userIdOrName=12345 destroy [可用]用来注销同指定id的用户的好友关系,当操作成功时,将返回被取消好友关系的用户,当失败时,将会返回失败信息。
用户身份验证verify [可用]用来验证用户账户密码是否匹配,用户账户密码信息必须通过 AUTH_HTTP 方式提供,返回信息中包含了用户登录名、OpenID(如果可用的话)等信息;
isAllInfo:值只能是boolean型,默认为boolean型false。 说明:如果不需要用户的具体信息,就不要用true,否则,会增加服务器的压力,可能对你开发的插件也有一定的影响。 朋友关系exists [可用]用来检验两个用户的关系是否是朋友关系或者跟随与被跟随的关系。返回相互跟随的关系结果。比如:A跟随了B。B没有跟随A。将返回对应的格式数据:如 xml<result><AFollowB>true</AFollowB><BFollowA>false</BFollowA></result>
userIdOrNameA 用户A的用户id或者登录名称 userIdOrNameB 用户B的用户id或者登录名称 其余批量获取用户数据ids (friends) [可用]用来获取指定的用户的朋友用户id。即自己跟随的人的id
http://api.digu.com/friends/ids.xml?userIdOrName={userIdOrName} 或者http://api.digu.com/friends/ids/{userIdOrName}.xml
ids (followers) [可用]用来获取指定的用户被跟随的用户id。
http://api.digu.com/followers/ids/{userIdOrName}.xml
用户个人资料,和设置方面update_profile_colors [可用]用来更新用户自己风格的设置。比如:背景颜色、文字颜色、链接颜色、边栏底色、边栏文字颜色、边栏主菜单文字颜色、边栏主菜单背景颜色。必须使用POST请求。注意,颜色的值必须是以#开头,后面是描述颜色的字符或者六位数字的颜色。即#这种格式,否则提交对修改无效。如:#ff1199,#988766
update_profile_image [可用]更新授权用户的头像,必须采用POST方法,而且不能POST图片路径,POST图片的时候,图片的大小不能超过4M,而且,只支持".png",".jpg",".jpeg",".gif",".bmp"格式。Form类型为multipart data。如:enctype="multipart data"
update_profile_bg_image [可用]更新个人主题设置里面的自定义背景图片。只支持.png",".jpg",".jpeg",".gif",".bmp"这三种格式。必须采用POST方法,而且不能POST图片路径。而且图片不能超过1M。 Form类型为multipart data。如: enctype="multipart data"
update_profile [可用]修改用户的账户基本信息,必须采用post方法提交。
用户注册相关已停止服务reg [可用]已停止服务提交用户注册的相关信息,注册成功将返回该用户的信息,不成功,返回对应错误信息。必须用Post方法,不需要认证。
check[可用]已停止服务验证用户名是否已经被注册,Get请求。 访问地址:http://api.digu.com/reg/check.format?username={username} 支持格式:xml, json 参数列表:
Favorite Methods 收藏相关的方法favorites [可用]返回授权用户的最新的20条收藏的嘀咕信息。也可以通过id或者用户名来指定一个用户,查询他最新的20条收藏的嘀咕信息。
其它参数跟public_timeline的参数列表使用方法一样,不再冗余陈述 create [可用]收藏一条嘀咕信息POST提交
注:如果还没有这个收藏夹名字,则自动给用户添加上这个收藏夹。 destroy [可用]删除授权用户收藏的一条嘀咕信息
收藏夹中的分类newcreate[可用]在授权用户的收藏夹中创建一个分组,必须采用POST方法。长度不能超过10个字符,否则自动截断
update[可用]在授权用户的收藏夹中重命名一个分组,必须采用POST方法。长度不能超过10个字符,否则自动截断
destroy [可用]在授权用户的收藏夹中根据分组名字,删除这个分组,并且该分组的那些收藏信息,也将被自动解除收藏关系。
show[可用]在授权用户的收藏夹中根据分组名字,删除这个分组,并且该分组的那些收藏信息,也将被自动解除收藏关系。
Search搜索newsearch_user[可用]搜索用户。由于对用户的搜索结果比较少,就一次性返回。不再分页返回了。
search_statuses[可用]搜索状态,分页处理。
头像尺寸说明
说明:返回的用户头像信息,一共有4种用户头像尺寸:72x72 48x48 32x32 24x24 只需要对应修改名字中的尺寸就可以得到对应的尺寸图片路径。例如: http://121.14.39.139/file/default/SIGN_24x24.jpg 要获得48x48尺寸的图片,只需要把24x24改为48x48即可。即 http://121.14.39.139/file/default/SIGN_48x48.jpg 获取照片尺寸说明说明:返回的照片信息,一共有2种尺寸:100x75 640x480
只需要对应修改名字中的尺寸就可以得到对应的尺寸图片路径。例如: http://121.14.39.139/file/default/SIGN_100x75.jpg 要获得48x48尺寸的图片,只需要把24x24改为48x48即可。即 http://121.14.39.139/file/default/SIGN_640x480.jpg 注:100x75及640x480分别对应两种尺寸,例如100x75会根据实际图片情况显示为75x100。 参数冲突说明new如果API既可以传递userId也可以传递用户的用户名。当遇到以下这种情况时会以userId优先。当一个人 申请的用户名是数字形式,并且是跟别人的userId一样的情况,即A用户的登录名和B用户的userId相 等,传递的是A的用户名的情况下,会把这个值优先作为用户userId来处理 如果参数中涉及到中文的,路径参数要对中文参数进行encode编码,如(java.net.URLEncoder.encode("嘀咕","UTF-8")),统一采用UTF-8所有返回JSON格式的访问路径或者Post的Form中均可带上这个callback参数,可解决调用者JS跨域问题。newcallback :(可选) - JavaScript函数名,使用 JSON 格式时可用,将 JSON 对象作为参数直接调用。方便跨域。 意见反馈有问题的热心用户请访问嘀咕app讨论组 或者直接跟随我们进行询问:@嘀咕团队 |
Sign in to add a comment
正在把格式弄得更方便查看...
能否在 json 格式输出时,考虑加入 callback 或者 var 参数,变成 callback({json}) 或者 var = {json} 这样的 JSONP 格式,方便跨域调用
谢谢提醒,下一步会将json的回调函数给加上的。大家在使用时建议使用新版,即域名是apidev.digu.com的,旧版本有一些bug,新版已经解决,我们将在五一前撤掉旧版本,谢谢大家支持,开发我们有个性的App吧。
json跨域问题已经加上,大家可以体验一下,谢谢支持。路径中中文参数要encode成UTF-8编码,否则不起作用。
user_timeline的参数列表没写全吧 除了userIdOrName以外,page、count这些参数也是可用的
更新的时候最好加个ChangeLog?
search_trends(熱門話題)的 API 至今還沒做出來嗎? 也該是加上去的時候了 ^^
怎么获取授权码呢? 请将方法的发到我的邮箱zhaoxiaoxu@softepoch.com
已经好了
收藏夹中的分类 --> Show 方法的描述不对吧
采用HTTP Basic Authentication认证怎么保证用户的密码安全呢?
一般都是Basic认证,不会有问题的
user_timeline好像是一个月之内的更新吧。怎样才能看到一个月之前的内容呢?
一个月前的内容暂时不再允许访问。 嘀咕网新的功能模块相关的API,会在接下来的日子里开发,大家不要太心急,我们一直在努力让大家用到更加稳定可靠丰富的API。
这地方长草了,有人打扫一下么?API能用么?
我也觉得应该打扫打扫....
我们一有空就会尽快修改页面的,文档时最新的,给你们带来不便,实在抱歉
新的API文档正在整理中。
请问能否公开“搜索话题”的API?