Class: Oauth2China::Sina

Inherits:
Base
  • Object
show all
Defined in:
lib/oauth2_china.rb

Instance Method Summary collapse

Constructor Details

#initialize(access_token) ⇒ Sina

Returns a new instance of Sina.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/oauth2_china.rb', line 11

def initialize(access_token)
  @access_token = access_token

  @tmpl = Hashie::Mash.new({
    access_token: access_token,
  })

  @conn = Faraday.new(:url => 'https://api.weibo.com') do |faraday|
    faraday.request  :multipart
    faraday.request  :url_encoded             # form-encode POST params
    #faraday.response :logger                  # log requests to STDOUT
    faraday.adapter  Faraday.default_adapter  # make requests with Net::HTTP
  end
end

Instance Method Details

#comments_create(id, comment, comment_ori = 0) ⇒ Object



75
76
77
78
79
80
81
82
83
84
# File 'lib/oauth2_china.rb', line 75

def comments_create(id, comment, comment_ori = 0)
  params             = @tmpl.clone

  params.id          = id
  params.comment     = comment
  params.comment_ori = comment_ori

  res = @conn.post("/2/comments/create.json", params).body
  Hashie::Mash.new(JSON.parse res)
end

#friendships_create(uid) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/oauth2_china.rb', line 49

def friendships_create(uid)
  params = @tmpl.clone

  if uid.is_a? String
    params.uid = uid
  else
    params.screen_name = uid
  end

  res = @conn.post("/2/friendships/create.json", params).body
  Hashie::Mash.new(JSON.parse res)
end

#get_uidObject



69
70
71
72
73
# File 'lib/oauth2_china.rb', line 69

def get_uid
  params = @tmpl.clone
  res = @conn.get("/2/account/get_uid.json", params).body
  Hashie::Mash.new(JSON.parse res)
end

#home_timeline(options = {}) ⇒ Object

since_id false int64 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。 max_id false int64 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。 count false int 单页返回的记录条数,默认为50。 page false int 返回结果的页码,默认为1。 base_app false int 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0。 feature false int 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。 trim_user false int 返回值中user字段开关,0:返回完整user字段、1:user字段仅返回user_id,默认为0。



120
121
122
123
124
# File 'lib/oauth2_china.rb', line 120

def home_timeline(options = {})
  params = @tmpl.clone.merge(options)
  res = @conn.get("/2/home/timeline.json", params).body
  Hashie::Mash.new(JSON.parse res)
end

#place_pois_add_checkin(poiid, status, options = {}) ⇒ Object



126
127
128
129
130
131
132
133
134
# File 'lib/oauth2_china.rb', line 126

def place_pois_add_checkin(poiid, status, options = {})
  params = @tmpl.clone.merge(options)

  params.poiid  = poiid
  params.status = status

  res = @conn.post("/2/place/pois/add_checkin.json", params).body
  Hashie::Mash.new(JSON.parse res)
end

#statuses_friends_timeline(options = {}) ⇒ Object

since_id false int64 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。 max_id false int64 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。 count false int 单页返回的记录条数,默认为50。 page false int 返回结果的页码,默认为1。 base_app false int 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0。 feature false int 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。 trim_user false int 返回值中user字段开关,0:返回完整user字段、1:user字段仅返回user_id,默认为0。



107
108
109
110
111
# File 'lib/oauth2_china.rb', line 107

def statuses_friends_timeline(options = {})
  params = @tmpl.clone.merge(options)
  res = @conn.get("/2/statuses/friends_timeline.json", params).body
  Hashie::Mash.new(JSON.parse res)
end

#statuses_mentions(options = {}) ⇒ Object

since_id false int64 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。 max_id false int64 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。 count false int 单页返回的记录条数,默认为50。 page false int 返回结果的页码,默认为1。 filter_by_author false int 作者筛选类型,0:全部、1:我关注的人、2:陌生人,默认为0。 filter_by_source false int 来源筛选类型,0:全部、1:来自微博、2:来自微群,默认为0。 filter_by_type false int 原创筛选类型,0:全部微博、1:原创的微博,默认为0。 trim_user false int 返回值中user字段开关,0:返回完整user字段、1:user字段仅返回user_id,默认为0。



94
95
96
97
98
# File 'lib/oauth2_china.rb', line 94

def statuses_mentions(options = {})
  params = @tmpl.clone.merge(options)
  res = @conn.get("/2/statuses/mentions.json", params).body
  Hashie::Mash.new(JSON.parse res)
end

#statuses_update(status, latitude = nil, longitutde = nil, annotation = nil) ⇒ Object



26
27
28
29
30
31
32
33
34
35
# File 'lib/oauth2_china.rb', line 26

def statuses_update(status, latitude = nil, longitutde = nil, annotation = nil)
  params            = @tmpl.clone
  params.status     = status
  params.lat        = latitude if latitude
  params.long       = longitutde if longitutde
  params.annotation = annotation if annotation

  res = @conn.post("/2/statuses/update.json", params).body
  Hashie::Mash.new(JSON.parse res)
end

#statuses_upload(status, picture, latitude = nil, longitutde = nil, annotation = nil) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
# File 'lib/oauth2_china.rb', line 37

def statuses_upload(status, picture, latitude = nil, longitutde = nil, annotation = nil)
  params            = @tmpl.clone
  params.pic        = Faraday::UploadIO.new(picture, 'image/jpeg')
  params.status     = status
  params.lat        = latitude if latitude
  params.long       = longitutde if longitutde
  params.annotation = annotation if annotation

  res = @conn.post("/2/statuses/upload.json", params).body
  Hashie::Mash.new(JSON.parse res)
end

#users_show(uid) ⇒ Object



62
63
64
65
66
67
# File 'lib/oauth2_china.rb', line 62

def users_show(uid)
  params     = @tmpl.clone
  params.uid = uid
  res = @conn.get("/2/users/show.json", params).body
  Hashie::Mash.new(JSON.parse res)
end