W połowie października firma GG Network S.A. udostępniła API dla developerów umożliwiające pisanie aplikacji w serwisie GG.pl. Wraz z API ogłoszony został konkurs na najlepszą aplikację, w którym można wygrać 30tys. zł oraz IPady. Prześledzimy na przykładzie jak stworzyć prostą aplikację w kilku łatwych krokach.
Dowiesz się:
-
Jak szybko stworzyć aplikację obliczającą biorytm w serwisie GG.pl
-
Sposoby na współpracę skryptów PHP i JavaScipt
-
W jaki sposób korzystać w metod GGAPI
Powinieneś wiedzieć:
W GG API dostępnych jest wiele zasobów szczegółowo opisanych na stronie http://dev.gg.pl/api. Poprzez GG API REST aplikacja może uzyskać dostęp do:
Zanim jednak aplikacja otrzyma dostęp do konta użytkownika, musi określić, które zakresy danych są jej niezbędne do poprawnego działania. Gdy użytkownik wejdzie na stronę aplikacji zostanie poproszony o zgodę na udzielenie dostępu do swoich danych. Gdy zgoda zostanie uzyskana aplikacja ma dostęp do odpowiednich zasobów autoryzując się swoim kluczem przy użyciu protokołu OAuth 2.0.
Mając odpowiednie dane jesteśmy w stanie stworzyć aplikację, która obliczy biorytm użytkownika. Wykorzystując możliwości API aplikacja może również rozesłać obliczone biorytmy do znajomych. Skorzystamy z gotowej biblioteki, w języku PHP opublikowanej na stronie dev.gg.pl, dzięki której w łatwy sposób można uzyskać dostęp do niezbędnych zasobów.
Konfiguracja aplikacji.
Przystępując do pracy należy najpierw zarejestrować aplikację. Procedura rejestracji jest dość prosta, należy określi ć nazwę aplikacji, jej opis oraz link do strony, na której się znajduje, gdyż wszystkie aplikacje wyświetlane są w serwisie GG.pl poprzez ifram’e. Dodamy dwie aplikacje – pierwszą do celów testowych kierującą na http://localhost/biorytm_test oraz docelową dostępną pod ogólnodostępnym adresem np. http://example.com/biorytm.
Wypełniamy odpowiedni formularz pod adresem http://dev.gg.pl/apps/new/ .

Rysunek 1 – Rejestracja aplikacji w serwisie dev.gg.pl
Definiujemy:
-
nazwę aplikacji – będzie prezentowana na pasku bocznym i w katalogu aplikacji – powinna być krótka i atrakcyjna
-
ikona – obrazek wielkości 40x40px
-
opis – kilkuzdaniowy opis prezentowany w katalogu aplikacji
-
adres docelowy – jest to link do aplikacji widoczny w serwisie gg.pl
-
właściwy URL pod którym aplikacja się znajduje
Do celów testowych jako URL możemy podać adres lokalny np. localhost, który potem zmienimy na publiczny adres serwera gdzie wgramy ostateczną wersję naszej aplikacji. Podczas tworzenia aplikacji takie rozwiązanie jest najwygodniejsze, gdyż możemy szybko wprowadzać zmiany i sprawdzać efekt końcowy w przeglądarce.
Od tej chwili wchodząc na http://www.gg.pl/#apps/biorytm_test w ramce na stronie uruchomi się nasza aplikacja dostępna pod adresem http://localhost/biorytm_test na której powinniśmy posiadać poprawnie skonfigurowany serwer WWW spierający obsługę języka PHP.
Aby można było obliczyć biorytm użytkownika należy otrzymać jego dane profilowe. Ze strony https://github.com/GGNetwork/GGAPI pobieramy bibliotekę w języku PHP i wgrywamy plik GGAPI.php do katalogu z aplikacją. Obiekt GGAPI inicjalizujemy z parametrami odpowiadającymi Client Id oraz Client Sercret które zostały wygenerowane podczas rejestrowania aplikacji. Skorzystamy z następujących metod biblioteki GGAPI:
-
GGAPI::getFriends() – pobranie listy znajomych użytkownika
-
GGAPI::getProfile() – pobranie danych z katalogu publicznego (imię, nazwisko, pseudonim, data urodzenia oraz miejsce zamieszkania)
-
GGAPI:: sendNotification() – wysłanie powiadomienia do znajomego
<?php
require_once 'GGAPI.php';
try{
// inicjalizacja GGAPI z parametrami aplikacji client_id i client_secret
// pobranymi z konfiguracji aplikacji na http://dev.gg.pl
$gg = new GGAPI('95936e8d393b5f0b9b', 'df63486f8f47024de');
// opcjonalna inicjalizacja sesji na podstawie gg_session_id
// jeśli token autoryzacyjny ma być zapisany tylko na czas sesji
$gg->initSession();
// jeśli nie ma tokena, należy poprosić użytkownika o dostęp do zasobów
if(!$gg->hasToken()){
$gg->authorize(array('users','pubdir','life'));
}
// pobranie listy kontaktów
$friends = !isset($_SESSION['friends']) ? $gg->getFriends() : $_SESSION['friends'];
// pobranie danych o użytkowniku
$profile = !isset($_SESSION['profile']) ? $gg->getProfile() : $_SESSION['profile'];
$_SESSION['friends'] = $friends;
$_SESSION['profile'] = $profile;
}catch(GGAPIException $e){
die($e->getMessage());
}
Źródło 1 - Pobranie danych z GGAPI
Gdy użytkownik wejdzie na stronę z aplikacją zostanie poproszony o zgodę na udostępnienie danych z profilu, listy znajomych oraz pulpitu. Jeśli użytkownik wyrazi zgodę – aplikacja może pobrać niezbędne dane – w tym wypadku zapisze je do sesji, aby nie było konieczności pobierania ich za każdym razem.
Mając informację z katalogu publicznego dotyczące użytkownika można wyliczyć już biorytm na podstawie daty urodzenia. Teorię biorytmów stworzył Wilhelm Fliess w XIX wieku. Opiera się ona na twierdzeniu, że procesy biologiczne organizmu podporządkowane są określonemu wzorcowi. Według tej teorii, cykl sprawności fizycznej powinien trwać 23 dni, a cykl stanu emocjonalnego - 28 dni. Każdy cykl ma swoje minimum i maksimum oraz stan zerowy – tzw. neutralny. Każdy ze stanów można obrazować w formie sinusoidy rysowanej od daty urodzenia do dnia dzisiejszego. Nasza aplikacja będzie wyliczała biorytm na dzień bieżący, a więc niezbędną dla nas informacją jest liczba dni przeżytych przez użytkownika oraz okres odpowiedniego cyklu.
Stworzymy funkcję, która jako parametry przyjmie datę urodzenia oraz liczbę dni charakterystyczną dla danego biorytmu. Dodatkowo każdy obliczony biorytm będzie posiadać własny opis i obrazek, co przyda się podczas publikowania wpisu na pulpicie użytkownika i uatrakcyjni formę prezentacji danych.
<?php
define('BIORHYTM_EMOTIONAL', 28);
define('BIORHYTM_INTELECTUAL', 33);
define('BIORHYTM_PHISICAL', 23);
define('BIORHYTM_INTUITION', 38);
function count_biorhythm($birth, $type){
$time_diff = (time() - $birth) / (24 * 60 * 60);
return round(sin(2 * pi() * $time_diff / $type) * 100);
}
function get_biorhythm_data($type, $birth, $descriptions){
$value = count_biorhythm($birth, $type);
$c = count($descriptions[$type]) - 1;
$v = min(array(round((100 + $value) * $c / 200), $c-1)) + 1;
return array(
'name' => $descriptions[$type][0],
'value' => $value,
'image' => $descriptions[$type][$v]['img'],
'description' => $descriptions[$type][$v]['desc'],
);
}
$lang = array(
BIORHYTM_EMOTIONAL => array(
'Emocje',
array(
'desc' => 'Niby powinno być w porządku ale wokół wszystko Cię denerwuje.',
'img' => 'img1.jpg'
),
array(
'desc' => 'Twoja stabilność emocjonalna jest zachwiana. ',
'img' => 'img2.jpg'
),
)
);
Źródło 2 - Funkcje obliczacjące biorytm
Funkcja count_biorhythm() obliczy biorytm dla danego dnia na podstawie sinusoidalnego przebiegu samopoczucia liczonego od momentu urodzenia o okresie odpowiadającym liczbie dni charakterystycznej dla danego typu. Funkcja get_biorhythm_data() pobierze wyliczy biorytm oraz dobierze odpowiedni opis i obrazek przechowywany w tablicy opisów. Można stworzyć ich dowolną ilość co uatrakcyjni zabawę i zachęci użytkownika do częstego jej odwiedzania (każdego dnia użytkownik będzie mieć inne wartości samopoczucia, a więc i inne zabawne opisy).

Rysunek 2 – Dodanie wpisu
Aby w ciekawy sposób przedstawić dane na stronie posłużymy się biblioteką jQuery, przy pomocy której wygenerujemy prosty wykres słupkowy. Dane obliczamy w języku PHP jednak w prosty sposób poprzez funkcję json_encode() możemy je przenieść do JavaScript’u.
Przeczytaj całość »
Autor Przemek Łącki, 30/11/2010, w API, GG.pl, GGAPI
Ostatnie Komentarze