Connettersi a FourSquare tramite ASIHTTPRequest

FourSquare permette tramite le sue API di accedere ad tutta una serie di funzionalità (molte in questa versione 1) direttamente dalle nostre applicazioni iPhone. Vediamo, quindi, come integrare l’accesso a FourSquare in Objective-C usando il noto framework ASIHTTPRequest per effettuare l’autenticazione base.

Cosa serve?

Prima di passare all’esempio di codice, che è davvero semplice, dovete munirvi di due framework esterni:

Le istruzioni su come inserirli nel codice sono nei rispettivi siti, comunque sia sono davvero facili da inserire in quanto si presentano entrmbi sotto forma di sorgenti Objective-C, quindi basta includerli nel nostro progetto.

Connessione

La connessione al server FourSquare può essere effettuata in due modi: modalità base o OAuth. La OAuth Authentication è quella raccomandata ma un po’ più articolata da implementare. Così qui utilizzeremo la più semplice:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    // FourSquare endpoint API
    NSURL *url = [NSURL URLWithString:@"http://api.foursquare.com/v1/user.json"];
    request = [ASIHTTPRequest requestWithURL:url];

    // Le tue credenziali di accesso
    [request setUsername:@"username"];
    [request setPassword:@"password"];
 
    [request startSynchronous];
 
    NSError *error = [request error];
    if (!error) {
        NSString *response = [request responseString];
        // Converto il risultato in JSON
        NSDictionary *results = [response JSONValue];
        NSLog(@"%@", results);
}

L’esempio qui sopra mostra come effettuare il login a FourSquare e ottenere (in JSON) le informazioni sulla nostra utenza, nel formato:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{
    user:{
        id:33,
        firstname:'Naveen',
        lastname:'Selvadurai',
        photo:'http://foursquare.com/userpix/33_1235974851.jpg',
        gender:'male',
        phone:2129103995,
        email:'n@naveen.com',
        twitter:'naveen',
        facebook:29103995,
        friendstatus:'friend',
        checkin:{
            id:413421,
            created:'Mon, 29 Jun 09 14:21:06 +0000',
            venue:{
                id:45506,
                name:'4SQ HQ - Soho',
                address:'...',
                crossstreet:'btw Grand & Broome',
                city:'New York',
                state:'NY',
                zip:10013
            }
        },
        badges:[
            {
                name:'Newbie',
                icon:'http://foursquare.com/img/badge/newbie_on.png',
                description:'Congrats on your first check-in!'
            }

Response for 'self' authenticated (truncated):

{
    user:{
        id:33,
...
        settings:{
            sendtotwitter:'false',
            sendtofacebook:'false',
            pings:'on'
        }

I vari endpoint (cioè le API), che permettono di eseguire un check-in, visualizzare gli amici o la nostra history, sono elencati nella documentazione. I parametri, invece, sono inviati in GET. Ad esempio quando richiediamo le informazioni sulla nostra utenza, come nell’esempio di prima, possiamo richiedere anche i badges che per default non vengono mostrati. Per fare questo basta modificare la riga dell’endpoint:

1
NSURL *url = [NSURL URLWithString:@"http://api.foursquare.com/v1/user.json?badges=1"];

Scarica sorgenti e demo

Cliccate qui per scaricare la demo visualizzata qui sotto:

Non ci sono commenti per questo Post

Lascia un commento

TAG XHTML PERMESSI: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERIMENTO CODICE:
<pre></pre> // blocco generico
					<code></code> // blocco generico
					[cc_actionscript][/cc_actionscript] // Actionscript
					[cc_actionscript3][/cc_actionscript3] // Actionscript 3
					[cc_css][/cc_css] // CSS Style Sheet
					[cc_html][/cc_html] // HTML
					[cc_js][/cc_js] // Javascript
					[cc_objc][/cc_objc] // Objective-C
					[cc_php][/cc_objc] // PHP
					[cc_sql][/cc_sql] // SQL


Stop SOPA