web/rsln-opendata/callback.php
author Samuel Huron <samuel.huron@centrepompidou.fr>
Tue, 15 Mar 2011 13:46:46 +0100
changeset 66 8a382087127f
child 68 ecaf28ffe26e
permissions -rw-r--r--
rsln-opendata
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
66
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     1
<?php
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     2
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     3
/**
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     4
 * include some common code (like we did in the 90s)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     5
 * People still do this? ;)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     6
 */
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     7
include_once './common.php';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     8
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     9
/**
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    10
 * Someone's knocking at the door using the Callback URL - if they have
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    11
 * some GET data, it might mean that someone's just approved OAuth access
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    12
 * to their account, so we better exchange our current Request Token
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    13
 * for a newly authorised Access Token. There is an outstanding Request Token
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    14
 * to exchange, right?
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    15
 */
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    16
if (!empty($_GET) && isset($_SESSION['TWITTER_REQUEST_TOKEN'])) {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    17
    $token = $consumer->getAccessToken($_GET, unserialize($_SESSION['TWITTER_REQUEST_TOKEN']));
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    18
    $_SESSION['TWITTER_ACCESS_TOKEN'] = serialize($token);
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    19
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    20
    /**
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    21
     * Now that we have an Access Token, we can discard the Request Token
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    22
     */
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    23
    $_SESSION['TWITTER_REQUEST_TOKEN'] = null;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    24
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    25
    /**
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    26
     * With Access Token in hand, let's try accessing the client again
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    27
     */
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    28
    header('Location: ' . URL_ROOT . '/index.php');
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    29
} else {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    30
    /**
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    31
     * Mistaken request? Some malfeasant trying something?
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    32
     */
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    33
    exit('Invalid callback request. Oops. Sorry.');
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    34
}