web/tweet.php
author Raphael Velt <raph.velt@gmail.com>
Fri, 10 Feb 2012 18:28:43 +0100
changeset 501 a5ce7d08e4f8
parent 229 74c9ddc3640b
child 1427 8b3d57a519eb
permissions -rwxr-xr-x
Premiere version Tweetwall

<?php

/**
 * include some common code (like we did in the 90s)
 * People still do this? ;)
 */
$rep = $_REQUEST['rep'];
include_once dirname(__FILE__).'/'.$rep.'/config.php';
include_once 'common.php';

/**
 * Check for a POSTed status message to send to Twitter
 */
if (!empty($_POST) && isset($_POST['status'])
&& isset($_SESSION['TWITTER_ACCESS_TOKEN'])) {
    /**
     * Easiest way to use OAuth now that we have an Access Token is to use
     * a preconfigured instance of Zend_Http_Client which automatically
     * signs and encodes all our requests without additional work
     */
    $token = unserialize($_SESSION['TWITTER_ACCESS_TOKEN']);
    $client = $token->getHttpClient($configuration);
    $client->setUri('http://twitter.com/statuses/update.json');
    $client->setMethod(Zend_Http_Client::POST);
    $client->setParameterPost('status', $_POST['status']);
    $response = $client->request();

    /**
     * Check if the json response refers to our tweet details (assume it
     * means it was successfully posted). API gurus can correct me.
     */
    $data = json_decode($response->getBody());
    $result = $response->getBody();
    if (isset($data->text)) {
        $result = 'true';
    }
    /**
     * Tweet sent (hopefully), redirect back home...
     */
    header('Location: ' . URL_ROOT . '$rep/client.php?result=' . $result);
} else {
    /**
     * Mistaken request? Some malfeasant trying something?
     */
    exit('Invalid tweet request. Oops. Sorry.');
}