Nick
I'm no expert but have this working, here is a copy of mine, try modifying this with your data.
Code:
// start autoTweet 3.0
//User Settings.
$consumerKey = "xxxxxxxxxxxxxxx"; //twitter app consumer key.
$consumerSecret = "xxxxxxxxxxxxxx"; //twitter app consumer secret.
$oauthToken = "xxxxxxxxxxxxxxxxx"; //twitter app "my access" token
$oauthTokenSecret = "xxxxxxxxxxxxxxxx"; //twitter app "my access" token secret.
$bitlyUsername = "bitly2011"; //bit.ly username
$bitApiKey = "R_8888888888888888888888883"; //bit.ly api key.
$storeUrl = "www.domain.co.uk"; //url to the homepage of your store no http.
$showprice = 0; // Show the product price? 0 = off, 1 = on. no quotes.
$timeout = 10; //seconds to wait for twitter & bit.ly. This can be left alone.
//do not edit below this line.
$prodUrl = urlencode(zen_catalog_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products_id));
//short url function.
function shortenUrl($user, $key, $shortenUrl){
$url = 'http://api.bit.ly/v3/shorten?login=' . $user .'&apiKey='. $key . '&longUrl=' . $shortenUrl . '&format=xml';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
//use oAuth library
require_once 'twitteroauth/twitteroauth.php';
//function to shorten url
$shorten = shortenUrl($bitlyUsername, $bitApiKey, $prodUrl);
//start message w/ or w/out price
$message = "New product available: " . $_POST['products_name'][$_SESSION['languages_id']] . '!';
if ($showprice){ $message .= ' Only $' . $products_price . '.'; }
//if shorten fails use $storeUrl
$bitStatus = simplexml_load_string($shorten);
$http_code = $bitStatus->status_code;
$status_txt = $bitStatus->status_txt;
if ($http_code != 200){$shorten = $storeUrl;
$biterror = "URL was not shortened for Twitter: ";
$biterror .= $storeUrl . " was used instead.";
$biterror .= " Reason: " . $status_txt;
$messageStack->add_session($biterror, 'caution');
} else { $shorten = $bitStatus->data->url;}
//finish message.
$message .= ' Check it out now at ' . $shorten;
//the connection to twitter API
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);
$connection->timeout = $timeout;
$connection->connecttimeout = $timeout;
//send message
$tweet = $connection->post('statuses/update', array('status' => $message));
//error check
if ($connection->http_code != NULL){
if ($connection->http_code != 200){
$error = "Twitter could not be updated: " . $connection->http_header["status"] . ": ";
$error .= $tweet->error;
$error .= "<br />To paste the code into twitter yourself use: <br />" . $message;
$messageStack->add_session($error, 'error');
} else {
$messageStack->add_session('Twitter Updated!', 'success');
}
} else {
$error = "Twitter could not be updated: Could not connect or there was nothing to do once connected.<br />
Twitter may be down or over capacity. To paste the code into twitter yourself use: <br />";
$messageStack->add_session($error, 'error');
$messageStack->add_session($message, 'caution');
}
// end autoTweet 3.0
Regards Dave
Bookmarks