Jump to content

Update Twitter Status using PHP Form

Recommended Posts

I'm building a simple PHP Form that will update the status of a twitter account. I have the following code, but it doesn't update my status (the username and password has been removed for this snippet) anymore because it used basic auth and twitter now requires OAuth.I have been following this tutorial here: http://ditio.net/2010/06/07/twitter-php-oauth-update-status/ and I have registered my App and copied both the Library and Tokens over (again these are removed from this snippet).BUT I'm not sure how to get this working with my current code, ie. what needs changing/adding/removing to get the OAuth working with my current code.If anyone could help me get this working that'd be awesome. As I have no idea where to start. Thanks.

<?php	function postToTwitter($username,$password,$message)	{		require_once 'TwitterOAuth.php';		define("CONSUMER_KEY", "???");		define("CONSUMER_SECRET", "???");		define("OAUTH_TOKEN", "???");		define("OAUTH_SECRET", "???");		$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_SECRET);		$content = $connection->get('account/verify_credentials');		$connection->post('statuses/update', array('status' => date(DATE_RFC822)));		// GET the API url via web authentication		// add 'status' param to send a message to Twitter		$host = "http://api.twitter.com/1/statuses/update.xml?status=".urlencode(stripslashes(urldecode($message)));		$ch = curl_init();		curl_setopt($ch, CURLOPT_URL, $host);		curl_setopt($ch, CURLOPT_VERBOSE, 1);		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);		curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));		curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");		curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);		curl_setopt($ch, CURLOPT_POST, 1);		// Go for it!!!		$result = curl_exec($ch);		// Look at the returned header		$resultArray = curl_getinfo($ch);		// close curl		curl_close($ch);		//echo "http code: ".$resultArray['http_code']."<br />";		if($resultArray['http_code'] == "200"){			echo "<br />OK! posted to http://twitter.com/".$username."/<br />";		} else {			echo "eek! yegads! error posting to Twitter";		}		// debug the result		// echo "<pre>";		// print_r($resultArray);		// echo "</pre><hr>";		// $sResult = htmlentities($result);		// $sResult = str_replace("><","><br /><",$sResult);		// echo "<pre>";		// print $sResult;		// echo "</pre>";	}	if(isset($_POST['submit']))	{		$textmessage = $_POST['message'];		postToTwitter("whiningwall","u0558234",$textmessage);	}?><!DOCTYPE html><html lang="en">	<head>		<meta http-equiv="content-type" content="text/html; charset=utf-8">		<meta name="viewport" content="width=1024">		<title></title>		<link rel="stylesheet" type="text/css" href="master.css" media="screen" />		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 	</head>	<body>		<form id="post" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">			<fieldset>				<label for="textArea">What's on your mind?</label>				<textarea id="textArea" name="message" maxlength="140"></textarea>				<div class="submit">					<span class="charsRemaining"></span>					<input type="submit" name="submit" value="Share" />				</div>			</fieldset>		</form>		<script type="text/javascript" src="jquery.maxlength.js"></script>		<script type="text/javascript">			$('#textArea').focus();		</script>	</body></html>

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...