감각 데이터에 액세스하십시오.
이 라인을 응용 프로그램의 보석에 추가하십시오.
gem 'unofficial_sense_api'그런 다음 실행 :
$ bundle
또는 직접 설치하십시오.
$ gem install unofficial_sense_api
실시간 데이터 가져 오기 ( wss://clientrt.sense.com/monitors/#{api.first_monitor_id}/realtimefeed )로 WebSocket을 시작합니다.
require 'sense_api'
require 'pp'
api = SenseApi . new ( "USERNAME" , "PASSWORD" )
count = 0
api . realtime do | json |
pp json
# Be sure to return :exit to terminate the connection and shut down EventMachine!
count += 1
count > 5 ? :exit : nil
end fetch 사용하여 원하는 휴식 종료점에서 가져 오십시오. 아직이 보석에 추가되지 않았습니다.
require 'sense_api'
api = SenseApi . new ( "USERNAME" , "PASSWORD" )
timeline = api . fetch ( "https://api.sense.com/apiservice/api/v1/users/ #{ api . user_id } /timeline?n_item=30" )
trends = api . fetch ( "https://api.sense.com/apiservice/api/v1/app/history/trends?monitor_id= #{ api . first_monitor_id } &scale=WEEK&start=2017-10-23T04:00:00.000Z" )
devices = api . fetch ( "https://api.sense.com/apiservice/api/v1/app/monitors/ #{ api . first_monitor_id } /devices?include_merged=true" )
first_device_id = devices . first [ "id" ]
first_device_details = api . fetch ( "https://api.sense.com/apiservice/api/v1/app/monitors/ #{ api . first_monitor_id } /devices/ #{ first_device_id } " )
first_device_hostory = api . fetch ( "https://api.sense.com/apiservice/api/v1/app/history/usage?monitor_id= #{ api . first_monitor_id } &granularity=MINUTE&start=2017-10-21T11:00:00.000Z&frames=5400&device_id= #{ first_device_id } " )지금까지 우리가 알고있는 엔드 포인트는 다음과 같습니다.
"https://api.sense.com/apiservice/api/v1/users/#{api.user_id}/timeline?n_item=30""https://api.sense.com/apiservice/api/v1/app/history/trends?monitor_id=#{api.first_monitor_id}&scale=WEEK&start=2017-10-23T04:00:00.000Z""https://api.sense.com/apiservice/api/v1/app/history/usage?monitor_id=#{api.first_monitor_id}&granularity=SECOND&start=2017-10-25T03:54:00.000Z&frames=5400" {api.first_monitor_id }& granularity SECOND second&start MINUTE 2017-10-25t03:54:00.000z&frames=5400"목록 장치 :
"https://api.sense.com/apiservice/api/v1/app/monitors/#{api.first_monitor_id}/devices?include_merged=true" 히스토리 요청에 device_id 추가 할 수 있습니다.
"https://api.sense.com/apiservice/api/v1/app/history/usage?monitor_id=#{api.first_monitor_id}&granularity=MINUTE&start=2017-10-21T11:00:00.000Z&frames=5400&device_id=SOME_DEVICE_ID"장치에 대한 데이터를 가져옵니다.
"https://api.sense.com/apiservice/api/v1/app/monitors/#{api.first_monitor_id}/devices/always_on""https://api.sense.com/apiservice/api/v1/app/monitors/#{api.first_monitor_id}/devices/unknown""https://api.sense.com/apiservice/api/v1/app/monitors/#{api.first_monitor_id}/devices/SOME_DEVICE_ID"원한다면 Ruby를 완전히 건너 뛰고 Curl을 사용하여 Sense API와 대화 할 수 있습니다.
curl -k --data "[email protected]" --data "password=URL_ENCODED_PASSWORD" -H "Sense-Client-Version: 1.17.1-20c25f9" -H "X-Sense-Protocol: 3" -H "User-Agent: okhttp/3.8.0" "https://api.sense.com/apiservice/api/v1/authenticate"
monitors user_id access_token 예를 들어:
curl -k -H "Authorization: bearer ACCESS_TOKEN" -H "Sense-Client-Version: 1.17.1-20c25f9" -H "X-Sense-Protocol: 3" -H "User-Agent: okhttp/3.8.0" "https://api.sense.com/apiservice/api/v1/app/history/usage?monitor_id=A_MONITOR_ID&granularity=SECOND&start=2017-10-24T05:36:00.000Z&frames=5400"
실험 할 수있는 대화식 프롬프트를 위해 bin/console 실행할 수 있습니다.
이 보석을 로컬 컴퓨터에 설치하려면 bundle exec rake install 실행하십시오. 새 버전을 해제하려면 version.rb 에서 버전 번호를 업데이트 한 다음 버전에 대한 GIT bundle exec rake release 를 생성하고 GIT 커밋 및 태그를 누르고 .gem 파일을 rubygems.org로 누릅니다.
보석은 MIT 라이센스의 조건에 따라 오픈 소스로 제공됩니다.