weibo2 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,20 @@
1
+ # encoding: utf-8
2
+ module Weibo2
3
+ module Interface
4
+
5
+ # Register API
6
+ #
7
+ # @see http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2#.E6.B3.A8.E5.86.8C
8
+ class Register < Base
9
+
10
+ # 验证昵称是否可用,并给予建议昵称
11
+ #
12
+ # @param [String] nickname 需要验证的昵称。4-20个字符,支持中英文、数字、"_"或减号
13
+ # @see http://open.weibo.com/wiki/2/register/verify_nickname
14
+ def verify_nickname(nickname)
15
+ get 'register/verify_nickname.json', :params => {:nickname => nickname}
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,158 @@
1
+ # encoding: utf-8
2
+ module Weibo2
3
+ module Interface
4
+
5
+ # Search API
6
+ #
7
+ # @see http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2#.E6.90.9C.E7.B4.A2
8
+ class Search < Base
9
+
10
+ # 搜索用户时的联想搜索建议
11
+ #
12
+ # @param [String] q 搜索的关键字
13
+ # @param [Hash] opts
14
+ # @option opts [int] :count 返回的记录条数,默认为10
15
+ #
16
+ # @see http://open.weibo.com/wiki/2/search/suggestions/users
17
+ def suggestions_users(q, opts={})
18
+ get 'search/suggestions/users.json', :params => {:q => q}.merge(opts)
19
+ end
20
+
21
+ # 搜索微博时的联想搜索建议
22
+ #
23
+ # @param [String] q 搜索的关键字
24
+ # @param [Hash] opts
25
+ # @option opts [int] :count 返回的记录条数,默认为10
26
+ #
27
+ # @see http://open.weibo.com/wiki/2/search/suggestions/statuses
28
+ def suggestions_statuses(q, opts={})
29
+ get 'search/suggestions/statuses.json', :params => {:q => q}.merge(opts)
30
+ end
31
+
32
+ # 搜索学校时的联想搜索建议
33
+ #
34
+ # @param [String] q 搜索的关键字
35
+ # @param [Hash] opts
36
+ # @option opts [int] :count 返回的记录条数,默认为10
37
+ # @option opts [int] :type 学校类型,0:全部、1:大学、2:高中、3:中专技校、4:初中、5:小学,默认为0
38
+ #
39
+ # @see http://open.weibo.com/wiki/2/search/suggestions/schools
40
+ def suggestions_schools(q, opts={})
41
+ get 'search/suggestions/schools.json', :params => {:q => q}.merge(opts)
42
+ end
43
+
44
+ # 搜索公司时的联想搜索建议
45
+ #
46
+ # @param [String] q 搜索的关键字
47
+ # @param [Hash] opts
48
+ # @option opts [int] :count 返回的记录条数,默认为10
49
+ #
50
+ # @see http://open.weibo.com/wiki/2/search/suggestions/companies
51
+ def suggestions_companies(q, opts={})
52
+ get 'search/suggestions/companies.json', :params => {:q => q}.merge(opts)
53
+ end
54
+
55
+ # 搜索应用时的联想搜索建议
56
+ #
57
+ # @param [String] q 搜索的关键字
58
+ # @param [Hash] opts
59
+ # @option opts [int] :count 返回的记录条数,默认为10
60
+ #
61
+ # @see http://open.weibo.com/wiki/2/search/suggestions/apps
62
+ def suggestions_apps(q, opts={})
63
+ get 'search/suggestions/apps.json', :params => {:q => q}.merge(opts)
64
+ end
65
+
66
+ # @用户时的联想建议
67
+ #
68
+ # @param [String] q 搜索的关键字
69
+ # @param [int] type 联想类型,0:关注、1:粉丝
70
+ # @param [Hash] opts
71
+ # @option opts [int] :count 返回的记录条数,默认为10,粉丝最多1000,关注最多2000
72
+ # @option opts [int] :range 联想范围,0:只联想关注人、1:只联想关注人的备注、2:全部,默认为2
73
+ #
74
+ # @see http://open.weibo.com/wiki/2/search/suggestions/at_users
75
+ def suggestions_at_users(q, type, opts={})
76
+ get 'search/suggestions/at_users.json', :params => {:q => q, :type => type}.merge(opts)
77
+ end
78
+
79
+ #TODO:test no pass
80
+ # 综合联想,包含用户、微群、应用等的联想建议
81
+ #
82
+ # @param [String] query 搜索的关键字
83
+ # @param [Hash] opts
84
+ # @option opts [int] :sort_user 用户排序,0:按专注人最多,默认为0
85
+ # @option opts [int] :sort_app 应用排序,0:按用户数最多,默认为0
86
+ # @option opts [int] :sort_grp 微群排序,0:按成员数最多,默认为0
87
+ # @option opts [int] :user_count 返回的用户记录条数,默认为4
88
+ # @option opts [int] :app_count 返回的应用记录条数,默认为1
89
+ # @option opts [int] :grp_count 返回的微群记录条数,默认为1
90
+ #
91
+ # @see http://open.weibo.com/wiki/2/search/suggestions/integrate
92
+ def suggestions_integrate(q, opts={})
93
+ get 'search/suggestions/integrate.json', :params => {:query => q}.merge(opts)
94
+ end
95
+
96
+ # 搜索与指定的一个或多个条件相匹配的微博 [Privilege]
97
+ #
98
+ # @param [Hash] opts
99
+ # @option opts [String] :q 搜索的关键字
100
+ # @option opts [int] :filter_ori 过滤器,是否为原创,0:全部、1:原创、2:转发,默认为0
101
+ # @option opts [int] :filter_pic 过滤器。是否包含图片,0:全部、1:包含、2:不包含,默认为0
102
+ # @option opts [int64] :fuid 搜索的微博作者的用户UID
103
+ # @option opts [int] :province 搜索的省份范围,省份ID
104
+ # @option opts [int] :city 搜索的城市范围,城市ID
105
+ # @option opts [int64] :starttime 开始时间,Unix时间戳
106
+ # @option opts [int64] :endtime 结束时间,Unix时间戳
107
+ # @option opts [int] :count 单页返回的记录条数,默认为10
108
+ # @option opts [int] :page 返回结果的页码,默认为1
109
+ # @option opts [boolean] :needcount 返回结果中是否包含返回记录数,true:返回、false:不返回,默认为false
110
+ # @option opts [int] :base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0
111
+ #
112
+ # @see http://open.weibo.com/wiki/2/search/statuses
113
+ def statuses(opts={})
114
+ get 'search/statuses.json', :params => opts
115
+ end
116
+
117
+ # 获取指定地点周边的微博列表 [Privilege]
118
+ #
119
+ # @param [float] longitude 经度。有效范围:-180.0到+180.0,+表示东经
120
+ # @param [float] latitude 纬度。有效范围:-90.0到+90.0,+表示北纬
121
+ # @param [Hash] opts
122
+ # @option opts [int] :range 搜索范围,单位米,默认500米,最大11132米
123
+ # @option opts [int] :time 返回结果所在的时间段,单位为分钟,指从现在开始之前的时间段
124
+ # @option opts [int] :sort_type 排序方式。默认为0,按时间排序;为1时按与中心点距离进行排序
125
+ # @option opts [int] :page 返回结果页码。默认为1
126
+ # @option opts [int] :count 每页结果数。默认10,最大50
127
+ # @option opts [int] :base_app 是否根据当前应用返回数据。默认0:全部应用;1:仅限当前应用
128
+ #
129
+ # @see http://open.weibo.com/wiki/2/search/geo/statuses
130
+ def geo_statuses(longitude, latitude, opts={})
131
+ get 'search/geo/statuses.json', :params => {:longitude => longitude, :latitude => latitude}.merge(opts)
132
+ end
133
+
134
+ # 通过关键词搜索用户 [Privilege]
135
+ #
136
+ # @param [Hash] opts
137
+ # @option opts [String] :q 搜索的关键字
138
+ # @option opts [int] :snick 搜索范围是否包含昵称,0:不包含、1:包含
139
+ # @option opts [int] :sdomain 搜索范围是否包含个性域名,0:不包含、1:包含
140
+ # @option opts [int] :sintro 搜索范围是否包含简介,0:不包含、1:包含
141
+ # @option opts [int] :stag 搜索范围是否包含标签,0:不包含、1:包含
142
+ # @option opts [int] :province 搜索的省份范围,省份ID
143
+ # @option opts [int] :city 搜索的城市范围,城市ID
144
+ # @option opts [String] :gender 搜索的性别范围,m:男、f:女
145
+ # @option opts [String] :comorsch 搜索的公司学校名称
146
+ # @option opts [int] :sort 排序方式,1:按更新时间、2:按粉丝数,默认为1
147
+ # @option opts [int] :count 单页返回的记录条数,默认为10
148
+ # @option opts [int] :page 返回结果的页码,默认为1
149
+ # @option opts [int] :base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0
150
+ #
151
+ # @see http://open.weibo.com/wiki/2/search/users
152
+ def users(opts={})
153
+ get 'search/users.json', :params => opts
154
+ end
155
+
156
+ end
157
+ end
158
+ end
@@ -0,0 +1,300 @@
1
+ # encoding: utf-8
2
+ module Weibo2
3
+ module Interface
4
+
5
+ # Statuses API
6
+ #
7
+ # @see http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2#.E5.BE.AE.E5.8D.9A
8
+ class Statuses < Base
9
+
10
+ # 返回最新的公共微博
11
+ #
12
+ # @param [Hash] opts
13
+ # @option opts [int] :count 单页返回的记录条数,默认为50
14
+ # @option opts [int] :page 返回结果的页码,默认为1
15
+ # @option opts [int] :base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0
16
+ #
17
+ # @see http://open.weibo.com/wiki/2/statuses/public_timeline
18
+ def public_timeline(opts={})
19
+ get 'statuses/public_timeline.json', :params => opts
20
+ end
21
+
22
+ # 获取当前登录用户及其所关注用户的最新微博
23
+ #
24
+ # @param [Hash] opts
25
+ # @option opts [int64] :since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0
26
+ # @option opts [int64] :max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0
27
+ # @option opts [int] :count 单页返回的记录条数,默认为50
28
+ # @option opts [int] :page 返回结果的页码,默认为1
29
+ # @option opts [int] :base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0
30
+ # @option opts [int] :feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0
31
+ #
32
+ # @see http://open.weibo.com/wiki/2/statuses/friends_timeline
33
+ def friends_timeline(opts={})
34
+ get 'statuses/friends_timeline.json', :params => opts
35
+ end
36
+
37
+ # 获取当前登录用户及其所关注用户的最新微博
38
+ #
39
+ # @param [Hash] opts
40
+ # @option opts [int64] :since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0
41
+ # @option opts [int64] :max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0
42
+ # @option opts [int] :count 单页返回的记录条数,默认为50
43
+ # @option opts [int] :page 返回结果的页码,默认为1
44
+ # @option opts [int] :base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0
45
+ # @option opts [int] :feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0
46
+ #
47
+ # @see http://open.weibo.com/wiki/2/statuses/home_timeline
48
+ def home_timeline(opts={})
49
+ get 'statuses/home_timeline.json', :params => opts
50
+ end
51
+
52
+ # 获取某个用户最新发表的微博列表
53
+ #
54
+ # @param [Hash] opts
55
+ # @option opts [int64] :uid 需要查询的用户ID
56
+ # @option opts [String] :screen_name 需要查询的用户昵称
57
+ # @option opts [int64] :since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0
58
+ # @option opts [int64] :max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0
59
+ # @option opts [int] :count 单页返回的记录条数,默认为50
60
+ # @option opts [int] :page 返回结果的页码,默认为1
61
+ # @option opts [int] :base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0
62
+ # @option opts [int] :feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0
63
+ # @option opts [int] :trim_user 返回值中user信息开关,0:返回完整的user信息、1:user字段仅返回user_id,默认为0
64
+ #
65
+ # @see http://open.weibo.com/wiki/2/statuses/user_timeline
66
+ def user_timeline(opts={})
67
+ get 'statuses/user_timeline.json', :params => opts
68
+ end
69
+
70
+ # 批量获取指定的一批用户的微博列表 [Privilege]
71
+ #
72
+ # @option opts [String] :uids 需要查询的用户ID,用半角逗号分隔,一次最多20个
73
+ # @option opts [String] :screen_name 需要查询的用户昵称,用半角逗号分隔,一次最多20个
74
+ # @option opts [int] :count 单页返回的记录条数,默认为20
75
+ # @option opts [int] :page 返回结果的页码,默认为1
76
+ # @option opts [int] :base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0
77
+ # @option opts [int] :feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0
78
+ # @see http://open.weibo.com/wiki/2/statuses/timeline_batch
79
+ def timeline_batch(opts={})
80
+ get 'statuses/timeline_batch.json', :params => opts
81
+ end
82
+
83
+ # 获取指定微博的转发微博列表
84
+ #
85
+ # @param [int64] id 需要查询的微博ID
86
+ # @param [Hash] opts
87
+ # @option opts [int64] :since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0
88
+ # @option opts [int64] :max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0
89
+ # @option opts [int] :count 单页返回的记录条数,默认为50
90
+ # @option opts [int] :page 返回结果的页码,默认为1
91
+ # @option opts [int] :filter_by_author 作者筛选类型,0:全部、1:我关注的人、2:陌生人,默认为0
92
+ #
93
+ # @see http://open.weibo.com/wiki/2/statuses/repost_timeline
94
+ def repost_timeline(id, opts={})
95
+ get 'statuses/repost_timeline.json', :params => {:id => id}.merge(opts)
96
+ end
97
+
98
+ # 获取当前用户最新转发的微博列表
99
+ #
100
+ # @param [Hash] opts
101
+ # @option opts [int64] :since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0
102
+ # @option opts [int64] :max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0
103
+ # @option opts [int] :count 单页返回的记录条数,默认为50
104
+ # @option opts [int] :page 返回结果的页码,默认为1
105
+ #
106
+ # @see http://open.weibo.com/wiki/2/statuses/repost_by_me
107
+ def repost_by_me(opts={})
108
+ get 'statuses/repost_by_me.json', :params => opts
109
+ end
110
+
111
+ # 获取最新的提到登录用户的微博列表,即@我的微博
112
+ #
113
+ # @param [Hash] opts
114
+ # @option opts [int64] :since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0
115
+ # @option opts [int64] :max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0
116
+ # @option opts [int] :count 单页返回的记录条数,默认为50
117
+ # @option opts [int] :page 返回结果的页码,默认为1
118
+ # @option opts [int] :filter_by_author 作者筛选类型,0:全部、1:我关注的人、2:陌生人,默认为0
119
+ # @option opts [int] :filter_by_source 来源筛选类型,0:全部、1:来自微博、2:来自微群,默认为0
120
+ # @option opts [int] :filter_by_type 原创筛选类型,0:全部微博、1:原创的微博,默认为0
121
+ #
122
+ # @see http://open.weibo.com/wiki/2/statuses/mentions
123
+ def mentions(opts={})
124
+ get 'statuses/mentions.json', :params => opts
125
+ end
126
+
127
+ # 根据微博ID获取单条微博内容
128
+ #
129
+ # @param [int] id 需要获取的微博ID
130
+ #
131
+ # @see http://open.weibo.com/wiki/2/statuses/show
132
+ def show(id)
133
+ get 'statuses/show.json', :params => {:id => id}
134
+ end
135
+
136
+ # 根据微博ID批量获取微博信息 [Privilege]
137
+ #
138
+ # @param [String] ids 需要查询的微博ID,用半角逗号分隔,最多不超过50个
139
+ #
140
+ # @see http://open.weibo.com/wiki/2/statuses/show_batch
141
+ def show_batch(ids)
142
+ get 'statuses/show_batch.json', :params => {:ids => ids}
143
+ end
144
+
145
+ # 通过微博(评论、私信)ID获取其MID
146
+ #
147
+ # @param [int64] id 需要查询的微博(评论、私信)ID,批量模式下,用半角逗号分隔,最多不超过20个
148
+ # @param [int] type 获取类型,1:微博、2:评论、3:私信,默认为1
149
+ # @param [Hash] opts
150
+ # @option opts [int] :is_batch 是否使用批量模式,0:否、1:是,默认为0
151
+ #
152
+ # @see http://open.weibo.com/wiki/2/statuses/querymid
153
+ def querymid(id, type=1, opts={})
154
+ get 'statuses/querymid.json', :params => {:id => id, :type => type}.merge(opts)
155
+ end
156
+
157
+ # test failed
158
+ # 通过微博(评论、私信)MID获取其ID
159
+ #
160
+ # @param [String] mid 需要查询的微博(评论、私信)MID,批量模式下,用半角逗号分隔,最多不超过20个
161
+ # @param [int] type 获取类型,1:微博、2:评论、3:私信,默认为1
162
+ # @param [Hash] opts
163
+ # @option opts [int] :is_batch 是否使用批量模式,0:否、1:是,默认为0
164
+ # @option opts [int] :inbox 仅对私信有效,当MID类型为私信时用此参数,0:发件箱、1:收件箱,默认为0
165
+ # @option opts [int] :isBase62 MID是否是base62编码,0:否、1:是,默认为0
166
+ #
167
+ # @see http://open.weibo.com/wiki/2/statuses/queryid
168
+ def queryid(mid, type=1, opts={})
169
+ get 'statuses/queryid.json', :params => {:mid => mid, :type => type}.merge(opts)
170
+ end
171
+
172
+ # 按天返回热门微博转发榜的微博列表
173
+ #
174
+ # @param [Hash] opts
175
+ # @option opts [int] :count 返回的记录条数,最大不超过50,默认为20
176
+ # @option opts [int] :base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0
177
+ #
178
+ # @see http://open.weibo.com/wiki/2/statuses/hot/repost_daily
179
+ def hot_repost_daily(opts={})
180
+ get 'statuses/hot/repost_daily.json', :params => opts
181
+ end
182
+
183
+ # 按周返回热门微博转发榜的微博列表
184
+ #
185
+ # @param [Hash] opts
186
+ # @option opts [int] :count 返回的记录条数,最大不超过50,默认为20
187
+ # @option opts [int] :base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0
188
+ #
189
+ # @see http://open.weibo.com/wiki/2/statuses/hot/repost_weekly
190
+ def hot_repost_weekly(opts={})
191
+ get 'statuses/hot/repost_weekly.json', :params => opts
192
+ end
193
+
194
+ # 按天返回热门微博评论榜的微博列表
195
+ #
196
+ # @param [Hash] opts
197
+ # @option opts [int] :count 返回的记录条数,最大不超过50,默认为20
198
+ # @option opts [int] :base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0
199
+ #
200
+ # @see http://open.weibo.com/wiki/2/statuses/hot/comments_daily
201
+ def hot_comments_daily(opts={})
202
+ get 'statuses/hot/comments_daily.json', :params => opts
203
+ end
204
+
205
+ # 按周返回热门微博评论榜的微博列表
206
+ #
207
+ # @param [Hash] opts
208
+ # @option opts [int] :count 返回的记录条数,最大不超过50,默认为20
209
+ # @option opts [int] :base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0
210
+ #
211
+ # @see http://open.weibo.com/wiki/2/statuses/hot/comments_weekly
212
+ def hot_comments_weekly(opts={})
213
+ get 'statuses/hot/comments_weekly.json', :params => opts
214
+ end
215
+
216
+
217
+ #
218
+ # write
219
+ #
220
+
221
+ # 转发一条微博
222
+ #
223
+ # @param [int64] id 要转发的微博ID
224
+ # @param [Hash] opts
225
+ # @option opts [String] :status 添加的转发文本,必须做URLencode,内容不超过140个汉字,不填则默认为“转发微博”
226
+ # @option opts [int] :is_comment 是否在转发的同时发表评论,0:否、1:评论给当前微博、2:评论给原微博、3:都评论,默认为0
227
+ #
228
+ # @see http://open.weibo.com/wiki/2/statuses/repost
229
+ def repost(id, opts={})
230
+ post 'statuses/repost.json', :body => {:id => id}.merge(opts)
231
+ end
232
+
233
+ # 根据微博ID删除指定微博
234
+ #
235
+ # @param [int64] id 需要删除的微博ID
236
+ #
237
+ # @see http://open.weibo.com/wiki/2/statuses/destroy
238
+ def destroy(id)
239
+ post 'statuses/destroy.json', :body => {:id => id}
240
+ end
241
+
242
+ # no tested
243
+ # 发布一条新微博
244
+ #
245
+ # @param [String] status 要发布的微博文本内容,内容不超过140个汉字
246
+ # @param [Hash] opts
247
+ # @option opts [float] :lat 纬度,有效范围:-90.0到+90.0,+表示北纬,默认为0.0
248
+ # @option opts [float] :long 经度,有效范围:-180.0到+180.0,+表示东经,默认为0.0
249
+ # @option opts [String] :annotations 元数据,主要是为了方便第三方应用记录一些适合于自己使用的信息,每条微博
250
+ # 可以包含一个或者多个元数据,必须以json字串的形式提交,字串长度不超过512个字符,具体内容可以自定
251
+ #
252
+ # @see http://open.weibo.com/wiki/2/statuses/update
253
+ def update(status, opts={})
254
+ post 'statuses/update.json', :body => {:status => status}.merge(opts)
255
+ end
256
+
257
+ # no tested
258
+ # 上传图片并发布一条新微博
259
+ #
260
+ # @param [String] status 要发布的微博文本内容,内容不超过140个汉字
261
+ # @param [binary] pic 要上传的图片,仅支持JPEG、GIF、PNG格式,图片大小小于5M
262
+ # @param [Hash] opts
263
+ # @option opts [float] :lat 纬度,有效范围:-90.0到+90.0,+表示北纬,默认为0.0
264
+ # @option opts [float] :long 经度,有效范围:-180.0到+180.0,+表示东经,默认为0.0
265
+ # @option opts [String] :annotations 元数据,主要是为了方便第三方应用记录一些适合于自己使用的信息,每条微博
266
+ # 可以包含一个或者多个元数据,必须以json字串的形式提交,字串长度不超过512个字符,具体内容可以自定
267
+ #
268
+ # @see http://open.weibo.com/wiki/2/statuses/upload
269
+ def upload(status, pic, opts={})
270
+ post 'statuses/upload.json', :body => {:status => status, :pic => pic}.merge(opts)
271
+ end
272
+
273
+ # 指定一个图片URL地址抓取后上传并同时发布一条新微博 [Privilege]
274
+ #
275
+ # @param [Hash] opts
276
+ # @option opts [String] :status 要发布的微博文本内容,内容不超过140个汉字
277
+ # @option opts [String] :url 图片的URL地址,必须以http开头
278
+ # @option opts [float] :lat 纬度,有效范围:-90.0到+90.0,+表示北纬,默认为0.0
279
+ # @option opts [float] :long 经度,有效范围:-180.0到+180.0,+表示东经,默认为0.0
280
+ # @option opts [String] :annotations 元数据,主要是为了方便第三方应用记录一些适合于自己使用的信息,每条微博
281
+ # 可以包含一个或者多个元数据,必须以json字串的形式提交,字串长度不超过512个字符,具体内容可以自定
282
+ #
283
+ # @see http://open.weibo.com/wiki/2/statuses/upload_url_text
284
+ def upload_url_text(opts={})
285
+ post 'statuses/upload_url_text.json', :body => opts
286
+ end
287
+
288
+ # 获取微博官方表情的详细信息
289
+ #
290
+ # @param [Hash] opts
291
+ # @option opts [String] :type 表情类别,face:普通表情、ani:魔法表情、cartoon:动漫表情,默认为face
292
+ # @option opts [String] :language 语言类别,cnname:简体、twname:繁体,默认为cnname
293
+ #
294
+ # @see http://open.weibo.com/wiki/2/emotions
295
+ def emotions(opts={})
296
+ get 'emotions.json', :params => opts
297
+ end
298
+ end
299
+ end
300
+ end