Class: Wechat::ShakeAround::Beacon

Inherits:
Object
  • Object
show all
Extended by:
Core::Common, Common
Defined in:
lib/wechat/shake_around/beacon.rb

Overview

Beacon 是管理 iBeacon 设备的封装类。

Constant Summary

Constants included from Common

Common::ERROR_CODES

Class Method Summary collapse

Methods included from Common

normalize_date, normalize_device_id, normalize_page_ids

Class Method Details

.index(access_token, offset, limit, apply_id: nil) ⇒ Object

查询设备列表 mp.weixin.qq.com/wiki/15/b9e012f917e3484b7ed02771156411f3.html#.E6.9F.A5.E8.AF.A2.E8.AE.BE.E5.A4.87.E5.88.97.E8.A1.A8

Return hash format if success: {

data:
{
  devices:
  [
    {
      comment:          '',
      device_id:        <DEVICE_ID>,
      major:            <MAJOR>,
      minor:            <MINOR>,
      status:           <STATUS>,           // 激活状态,0:未激活,1:已激活
      last_active_time: <LAST_ACTIVE_TIME>, // 设备最近一次被摇到的日期(最早只能获取前一天的数据);新申请的设备该字段值为0
      poi_id:           <POI_ID>,           // 设备关联的门店ID,关联门店后,在门店1KM的范围内有优先摇出信息的机会。门店相关信息具体可查看门店相关的接口文档
      uuid:             <UUID>
    }
  ],
  total_count: <TOTAL_COUNT> // 商户名下的设备总量
},
errcode: 0,
errmsg:  'success.'

}



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/wechat/shake_around/beacon.rb', line 35

def self.index(access_token, offset, limit, apply_id: nil)

  assert_present! :access_token, access_token
  assert_present! :offset,       offset
  assert_present! :limit,        limit

  options = { begin: offset, count: limit }
  if apply_id.present?
    options[:apply_id] = apply_id
    options[:type]     = 3
  else
    options[:type]     = 2
  end
  post_json "https://api.weixin.qq.com/shakearound/device/search?access_token=#{access_token}", body: options
end

.load(access_token, device_id) ⇒ Object

查询设备 mp.weixin.qq.com/wiki/15/b9e012f917e3484b7ed02771156411f3.html#.E6.9F.A5.E8.AF.A2.E8.AE.BE.E5.A4.87.E5.88.97.E8.A1.A8

Return hash format if success: {

data:
{
  devices:
  [
    {
      comment:          '',
      device_id:        <DEVICE_ID>,
      major:            <MAJOR>,
      minor:            <MINOR>,
      status:           <STATUS>,           // 激活状态,0:未激活,1:已激活
      last_active_time: <LAST_ACTIVE_TIME>, // 设备最近一次被摇到的日期(最早只能获取前一天的数据);新申请的设备该字段值为0
      poi_id:           <POI_ID>,           // 设备关联的门店ID,关联门店后,在门店1KM的范围内有优先摇出信息的机会。门店相关信息具体可查看门店相关的接口文档
      uuid:             <UUID>
    }
  ],
  total_count: <TOTAL_COUNT> // 商户名下的设备总量
},
errcode: 0,
errmsg:  'success.'

}

device_id is an integer or a hash like { uuid: <UUID>, major: <MAJOR>, minor: <MINOR> }.



79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/wechat/shake_around/beacon.rb', line 79

def self.load(access_token, device_id)

  assert_present! :access_token, access_token
  assert_present! :device_id,    device_id

  device_identifier = self.normalize_device_id device_id
  post_json "https://api.weixin.qq.com/shakearound/device/search?access_token=#{access_token}", body:
    {
      type:               1,
      device_identifiers: [ device_identifier ]
    }
end

.update(access_token, device_id, comment) ⇒ Object

编辑设备信息 mp.weixin.qq.com/wiki/15/b9e012f917e3484b7ed02771156411f3.html#.E7.BC.96.E8.BE.91.E8.AE.BE.E5.A4.87.E4.BF.A1.E6.81.AF

Return hash format if success:

data:    {,
errcode: 0,
errmsg:  'success.'

}

device_id is an integer or a hash like { uuid: <UUID>, major: <MAJOR>, minor: <MINOR> }.



104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/wechat/shake_around/beacon.rb', line 104

def self.update(access_token, device_id, comment)

  assert_present! :access_token, access_token
  assert_present! :device_id,    device_id
  assert_present! :comment,      comment

  device_identifier = self.normalize_device_id device_id
  post_json "https://api.weixin.qq.com/shakearound/device/update?access_token=#{access_token}", body:
    {
      device_identifier: device_identifier,
      comment:           comment
    }
end