Git Product home page Git Product logo

fitgem's Introduction

Fitgem Build Status

Provides access to fitbit.com data through their REST API. Fitgem can pull data with or without a valid OAUth access_token. Without an access_token you can only gather data that a user has denoted as 'public'. However, if an access_token is provided then all exposed data can be gathered for the logged-in account.

The Fitbit API is currently in BETA and is under development to extend its reach. As the API evolves and is enhanced it's a priority to mirror the functionality in the gem, and pull requests are appreciated if you see gaps in API support.

Installation

Install fitgem

$ gem install fitgem

or add it to your Gemfile

gem 'fitgem'

API Reference

Comprehensive method documentation is available online.

The best way to connect your users to the Fitbit API is to use omniauth-fitbit to integrate Fitbit accounts into your web application. Once you have a Fitbit API OAuth access_token for a user it's simple to create a client object through fitgem to send and receive fitness data.

Subscriptions

The Fitbit API allows for you to set up notification subscriptions. When user data changes (through syncing with the fitbit device) your applications can be notified automatically. You can set up a default subscription callback URL via the Fitbit dev site and then use the Subscriptions API to add or remove subscriptions for individual users.

Reference Application

To learn more about how to use fitgem in a Rails application, go to http://fitbitclient.com or see the code at https://github.com/whazzmaster/fitgem-client.

The reference app is written using Rails 3.2 and Backbone.js and includes examples on how to:

  • Integrate OAuth logins omniauth-fitbit
  • Store and use OAuth access tokens
  • Create and use instances of Fitgem::Client using the stored OAuth access token

Contributing to Fitgem

The Fitbit REST API is in BETA right now, and so it will quite likely change over time. I aim to keep as up-to-date as I can but if you absolutely need functionality that isn't included here, feel free to fork and implement it, then send me a pull request.

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
  • Fork the project
  • Start a feature/bugfix branch
  • Commit and push until you are happy with your contribution
  • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.

Contributors

Many, many thanks to everyone that has contributed to improve fitgem!

Copyright & Disclaimer

Copyright © 2011-2013 Zachery Moneypenny. See LICENSE for further details. I am not employed by Fitbit. I created this library to assist other ruby developers in creating interesting applications on top of fitbit.com's data store and device data stream.

fitgem's People

Contributors

kevintuhumury avatar camdub avatar codebender avatar nckpark avatar bookis avatar anl avatar aprihodko avatar bnadlerjr avatar halkeye avatar jcasimir avatar donaldgoose avatar marmarko avatar maxbeizer avatar hagope avatar sthanson avatar

Watchers

David Faber avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.