web/tweet.php
author ymh <ymh.work@gmail.com>
Wed, 18 Dec 2024 15:24:41 +0100
changeset 1584 257c14dae52a
parent 1557 7c67caaafdeb
permissions -rwxr-xr-x
Added tag V09.006 for changeset 459a88818bec

<?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';
use Abraham\TwitterOAuth\TwitterOAuth;

/**
 * Check for a POSTed status message to send to Twitter
 */
if (!empty($_POST) && isset($_POST['status'])
&& isset($_SESSION['SOCIAL_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['SOCIAL_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();
    $token = unserialize($_SESSION['SOCIAL_ACCESS_TOKEN']);
    $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $token['oauth_token'], $token['oauth_token_secret']);

    $data = $connection->post("statuses/update", ["status" => $_POST['status']]);


    /**
     * 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';
    } else {
        $result = json_encode($data);
    }
    /**
     * 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.');
}