Dzisiejszy post będzie przydatny dla użytkowników aplikacji Day One oraz biblioteki do generowania wpisów do niej Slogger. Day One jest to najlepsza obecnie na rynku aplikacja do tworzenia elektronicznego dziennika. Slogger to skrypt napisany w Ruby, który potrafi agregować dane z różnych witryn społecznościowych i innych serwisów i na podstawie tego tworzyć wpisy w Day One.

Jednym z serwisów jaki możemy zintegrować z Day One jest Runkeeper. Za pomocą wtyczki, Slogger może importować dane z serwisu internetowego Runkeeper’a i tworzyć w Day One wpisy podsumowujące aktywności na dany dzień. Istnieje w sieci instrukcja jak zrobić taką integrację, natomiast jak słusznie zwrócił mi na to uwagę Grzegorz ([@g0k](https://twitter.com/g0k)), nie jest ona zbyt jasna. Głównym problemem jest uzyskanie tokena dostępowego do API Runkeeper’a. Opiszę dla Was ten proces krok po kroku.

Zakładam, że Slogger jest już zainstalowany i działający w systemie. Instalacja jego nie jest ciężką sprawą, natomiast jeśli ktoś z Was ma problemy to możecie mi zadać pytanie na twitterz’e czy mailowo na adres pawel (at) pawelwojciechowski.com.

Zaczynamy

Pierwszym krokiem jaki musimy wykonać to uzyskanie dostępu do API Runkeeper’a. W tym celu musimy zarejestrować swoją aplikację http://runkeeper.com/partner/applications/view i wybieramy “Register a New Application”.

Formularz może być trochę niejasny dlatego przeprowadzę Was przez jego wypełnienie. Jako “Application Name” i “Description” możemy wpisać co nam się podoba. Te dane mają na celu tylko identyfikację naszej aplikacji. Pole “Organization” i “Application icon” zostawiamy puste. Następnie musimy wybrać jakich uprawnień będzie żądać nasza aplikacja. Do integracji ze Slogger’em wystarczy nam odczyt danych, więc zaznaczamy “Read Health Information”. W polu tekstowym obok musimy wyjaśnić dlaczego potrzebujemy tego uprawnienia. Proponuję wpisać “To generate statistical summaries of data”. Do wypełnienia pozostało nam ostatnie pole – “Authorization Removal Callback URL”. Potrzebujemy wpisać tutaj istniejący adres internetowy. Jeśli posiadacie bloga czy inną stronę internetową to możecie jej adresu tutaj użyć. Jeśli nie to możecie wpisać adres mojego bloga. Zatwierdzamy formularz przyciskiem “Register Application”.

Aplikacja powinna być zarejestrowana. Teraz potrzebujemy uzyskać dane autoryzacyjne aplikacji, dlatego klikamy “Keys and Urls” przy naszej aplikacji. Mamy tam dwie wartości, które nas interesują ‘client_id’ i ‘client_secret’.

client_id i client_secret

Musimy uzyskać kod autoryzacyjny aplikacji. W tym celu najprościej wywołać url autoryzacyjny z odpowiednimi parametrami dotyczącymi naszej aplikacji. Url wygląda następująco:

1
https://runkeeper.com/apps/authorize?response_type=code&client_id=[MY_CLIENT_ID]&redirect_uri=http%3A%2F%2F[MY_URL.COM]

Podmieniamy w nim ‘[MY_CLIENT_ID]’ na ‘client_id’ jakie jest wyznaczone dla naszej aplikacji oraz ‘[MY_URL_COM]’ na url, który podaliśmy przy rejestracji aplikacji. Po wywołaniu tego url zostaniemy przekierowani na stronę, którą podaliśmy przy rejestracji, natomiast w adresie internetowym będzie znajdować się jeden istotny dla nas parametr. Parametr ten znajdować się będzie na końcu adresu zaraz po ciągu znaków ‘?code=’.

runkeeper_code_mini.jpg

Proponuję go zapisać bo będzie nam potrzebny w kolejnym kroku.

Token API

Kolejnym krokiem jaki nam pozostał jest uzyskanie tokena do API Runkeeper’a. Token ten potrzebny jest do autoryzacji naszej aplikacji przy każdym zapytaniu o dane do serwera Runkeeper’a. Możemy go uzyskać na dwa sposoby. Możemy otworzyć poniższy link, lub kliknąć go prawym przyciskiem, zapisać na dysku i otworzyć ze swojego komputera.

runkeeper API token obtainer

Za pomocą tego małego formularza uzyskamy nasz token. Musimy wypełnić wszystkie pola. W pole ‘code’ wpisujemy ciąg znaków, który uzyskaliśmy w poprzednim kroku. W polach ‘client_id’ i ‘client_secret’ podajemy dane jakie uzyskaliśmy po rejestracji aplikacji, a w pole ‘redirect_url’ wpisujemy adres jaki podaliśmy w formularzu tworzenia aplikacji. Po wpisaniu wszystkich danych klikamy przycisk “Prześlij”.

rukeeper_token_obt.png

Po chwili otrzymamy komunikat zwrotny z formularza, który będzie wyglądał mniej więcej tak:

runkeeper_token.png

Tutaj komunikat jest sformatowany i pokolorowany, ale treść będzie podobna. To co znajdziemy zaraz po ‘token:’ jest naszym tokenem dostępowym do API Runkeeper’a.

Konfiguracja wtyczki

Ostatnim krokiem jest skonfigurowanie wtyczki Runkeeper’a w Slogger’ze. Najpierw musimy wtyczkę aktywować. W tym celu musimy w katalogu Slogger’a przenieść plik ‘runkeeper.rb’ z katalogu ‘plugins_disabled’ do ‘plugins’.

Kolejnym krokiem jest aktualizacja konfiguracji Slogger’a. Wtyczka Runkeepera nie wymaga skomplikowanych konfiguracji:

1
2
3
4
runkeeper_save_data_file: /path_to_txt/runkeeper.txt
runkeeper_access_token: xxxxxxxxxxxxxxxxxxxx
metric_distance: true
runkeeper_tags: "#workout #runkeeper"

Pierwsza linijka wskazuje gdzie chcemy umieścić plik txt, w którym wtyczka będzie dodatkowo zapisywać dane, oprócz wpisów w Day One. W drugiej podajemy token dostępowy do API. Trzecia wskazuje, że chcemy użyć systemu metrycznego, a czwarta definiuje tagi, jakie otrzymają wpisy w Day One z danymi z Runkeeper’a.

I na tym koniec! Wtyczka Runkeeper’a powinna już działać. Miłego używania!

Źródło: https://gist.github.com/ats/5538092