NAME

WebService::Fitbit - Thin wrapper around the Fitbit OAuth API

VERSION

version 0.000001

SYNOPSIS

use strict;
use warnings;

use WebService::Fitbit ();

my $client = WebService::Fitbit->new(
    access_token  => 'secret-access-token',
    app_key       => 'my-app-id',
    app_secret    => 'my-app-secret',
    refresh_token => 'secret-refresh-token',
);

my $me = $client->get('/1/user/-/profile.json');

# Dump HashRef of response
use Data::Printer;
p( $me->content );

DESCRIPTION

beta beta beta. Interface is subject to change.

This is a very thin wrapper around the Fitbit OAuth API.

CONSTRUCTOR AND STARTUP

new

  • access_token

    A (once) valid OAuth access token. It's ok if it has expired.

  • app_key

    The key which Fitbit has assigned to your app.

  • app_secret

    The secret which Fitbit has assigned to your app.

  • refresh_token

    A valid refresh_token which the Fitbit API has provided.

  • ua

    Optional. A useragent of the LWP::UserAgent family.

  • base_uri

    Optional. Provide only if you want to route your requests somewhere other than the Fitbit OAuth endpoint.

get

Accepts a relative URL path and an optional HashRef of params. Returns a WebService::Fitbit::Response object.

my $me = $client->get('/1/user/-/profile.json');

my $activities = $client->get(
    '/1/user/-/activities/list.json',
    {
        beforeDate => '2015-07-15T23:45:47.000Z',
        limit      => 10,
        sort       => 'desc',
    }
);

delete

Accepts a relative URL path and an optional HashRef of params. Returns a WebService::Fitbit::Response object.

my $delete = $client->delete(
    '/1/user/-/activities/[activity-log-id].json'
);

post

Accepts a relative URL path and an optional HashRef of params. Returns a WebService::Fitbit::Response object.

my $post = $client->post(
    '/1/user/[user-id]/activities/goals/[period].json',
    { foo => 'bar', ... }
);

access_token

Returns the current access_token. This may not be the token which you originally supplied. If your supplied token has been expired, then this module will try to get you a fresh access_token.

access_token_expiration

Returns expiration time of access token in epoch seconds, if available. Check the predicate before calling this method in order to avoid a possible exception.

if ( $client->has_access_token_expiration ) {
    print $client->access_token_expiration;
}

has_access_token_expiration

Predicate. Returns true if access_token_expiration has been set.

refresh_access_token

Tries to refresh the access_token. Returns true on success and dies on failure. Use the access_token method to get the new token if this method has returned true.

ua

Returns the UserAgent which is being used to make requests. Defaults to a WWW::Mechanize object.

AUTHOR

Olaf Alders <olaf@wundercounter.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Olaf Alders.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.