Skip to content

Instantly share code, notes, and snippets.

@aliou
Forked from NorthIsUp/fuel.py
Last active December 10, 2015 00:59
Show Gist options
  • Save aliou/4355455 to your computer and use it in GitHub Desktop.
Save aliou/4355455 to your computer and use it in GitHub Desktop.

Nike fuel data

The config file is located at ~/.config/nike/config is formated like a regular yaml file:

access_token: xxxxxxx
deviceId: xxxxxxx
require 'json'
require 'date'
data = JSON.parse(File.read("data.json"))
days = []
data["daily"].each do |day|
current = {}
current["date"] = day["summary"]["startDate"] / 1000
current["fuel"] = day["summary"]["avgFuelPerDay"]
current["steps"] = day["summary"]["steps"]
current["activeTime"] = day["summary"]["activeTime"]
days << current
end
File.open('daily.json', 'w') {|f| f.write(JSON.pretty_generate days)}
require 'json'
require 'yaml'
require 'net/http'
config = YAML.load_file("#{ENV['HOME']}/.config/nike/config")
start_date = '171212'
end_date = '201212'
fidelity = 24
headers = {
'Accept' => 'application/json',
'appid' => 'fuelband'
}
params = {
'access_token' => config["access_token"],
'deviceId' => config["deviceId"],
'endDate' => end_date,
'fidelity' => fidelity
}
uri = URI.parse("https://api.nike.com/v1.0/me/activities/summary/#{start_date}")
uri.query = URI.encode_www_form(params)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(uri.request_uri)
request['Accept'] = 'application/json'
request['appid'] = 'fuelband'
response = http.request(request)
File.open('data.json', 'w') {|f| f.write(JSON.pretty_generate JSON.parse response.body) }
require 'json'
require 'date'
data = JSON.parse(File.read("data.json"))
days = []
data["daily"].each do |day|
current = {}
current["date"] = day["summary"]["startDate"] / 1000
current["points"] = []
day["history"].map { |val| current["points"] << val["fuel"] }
days << current
end
File.open('hourly_points.json', 'w') {|f| f.write(JSON.pretty_generate days)}
@chadvavra
Copy link

Hello, did you figure out how to find the Device ID and Access Token in Charles?

It's not crashing for me but I also haven't been able to find them anywhere in the output.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment