NAME WebService::HealthGraph - A thin wrapper around the Runkeeper (Health Graph) API VERSION version 0.000004 SYNOPSIS my $runkeeper = WebService::HealthGraph->new( debug => 1, token => 'foo', ); my $user = $runkeeper->user; use Data::Printer; p $user->content; # Fetch a weight feed use DateTime (); use URI::FromHash qw( uri ); my $cutoff = DateTime->now->subtract( days => 7 ); my $uri = uri( path => '/weight', query => { noEarlierThan => $cutoff->ymd }, ); my $feed = $runkeeper->get($uri, { feed => 1 }); p $feed->content; DESCRIPTION BETA BETA BETA. The interface is subject to change. This is a very thin wrapper around the Runkeeper (Health Graph) API. At this point it assumes that you already have an OAuth token to connect with. You can use Mojolicious::Plugin::Web::Auth::Site::Runkeeper to create a token. If that doesn't suit you, patches to add OAuth token retrieval to this module will be happily accepted. CONSTRUCTOR ARGUMENTS auto_pagination Boolean. If enabled, response objects will continue to fetch new result pages as the iterator requires them. Defaults to true. base_url The URL of the API. Defaults to . This is settable in case you'd need this for mocking. debug( $bool ) Turns on debugging via LWP::ConsoleLogger. Off by default. token OAuth token. Optional, but you'll need to to get any URLs. ua A user agent object of the LWP::UserAgent family. If you provide your own, be sure you set the correct default headers required for authentication. url_map Returns a map of keys to URLs, as provided by the "user" endpoint. Runkeeper wants you to use these URLs rather than constructing your own. uri_for Gives you the corresponding url (in the form of an URI object) for any key which exists in "url_map". You can optionally pass a HashRef of query params to this method. my $team_uri = $runkeeper->uri_for( 'team', { pageSize => 10 } ); my $friends = $runkeeper->get( $runkeeper->uri_for( 'team', { pageSize => 10 } ), { feed => 1 } ); url_for Convenience method which points to "url_for". Will be removed in a later release. user The WebService::HealthGraph::Response object for the "user" endpoint. user_id The id of the user as provided by the "user" endpoint. METHODS get( $url, $optional_args ) This module will try to do the right thing with the minimum amount of information: my $weight_response = $runkeeper->get( 'weight', { feed => 1 } ); if ( $weight_response->success ) { ... } Optionally, you can provide your own Accept (or other) headers: my $record_response = $runkeeper->get( 'records', { headers => { Accept => 'application/vnd.com.runkeeper.Records+json' } ); Returns a WebService::HealthGraph::Response object. CAVEATS Most response content will contain a "HashRef", but the "records" endpoint returns a response with an "ArrayRef" in the content. AUTHOR Olaf Alders COPYRIGHT AND LICENSE This software is copyright (c) 2016 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.