Created
December 28, 2014 00:35
-
-
Save jonahlyn/3cf4c4428a9abe641d2d to your computer and use it in GitHub Desktop.
Read in activity data from Jawbone UP api in R (gist)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
########################################################################### | |
# Read in activity data from Jawbone UP api in R | |
# 1. Setup an application at: https://jawbone.com/up/developer/ | |
# 2. Set the OAuth redirect URLs: http://localhost:1410, http://localhost:1410/ | |
# 3. Be sure to set your key and secret in R: | |
# Sys.setenv(JAWBONE_API_KEY = "Your Client Id", | |
# JAWBONE_CONSUMER_SECRET = "Your App Secret") | |
# 4. Install httr package: install.packages("httr") | |
########################################################################### | |
library("httr") | |
# Read in existing data from a file or from the api if the file does not exist. | |
filename <- "jawbone.txt" | |
if(file.exists(filename)) { | |
load(filename) | |
} else { | |
jawbone <- oauth_endpoint("token", "auth", "token", base_url = "https://jawbone.com/auth/oauth2") | |
jawbone.api.key <- Sys.getenv(c("JAWBONE_API_KEY")) | |
jawbone.app <- oauth_app("jawbone", jawbone.api.key) | |
# Full list of possible scopes: | |
# basic_read, extended_read, location_read, friends_read, mood_read, mood_write, move_read, move_write, | |
# sleep_read, sleep_write, meal_read, meal_write, weight_read, weight_write, cardiac_read, cardiac_write, | |
# generic_event_read, generic_event_write | |
jawbone.token <- oauth2.0_token(jawbone, jawbone.app, | |
c("basic_read", "extended_read", "location_read", | |
"friends_read", "mood_read", "move_read", | |
"sleep_read", "meal_read", "weight_read", | |
"generic_event_read")) | |
request.url <- c("https://jawbone.com/nudge/api/v.1.1/users/@me/moves") | |
req <- GET(request.url, config(token = jawbone.token)) | |
stop_for_status(req) | |
moves.data <- content(req) | |
save(moves.data, file = filename) | |
} | |
# Create a simple data frame with date and total number of steps taken | |
steps.df <- data.frame(date = as.Date(character()), | |
steps = integer(), | |
stringsAsFactors = FALSE) | |
for(m in moves.data$data$items[1:moves.data$data$size]){ | |
steps.df <- rbind(steps.df, data.frame(date = as.Date(as.character(m$date), format = c("%Y%m%d")), | |
steps = m$details$steps, | |
stringsAsFactors = FALSE)) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment