Hello There!
At the moment i am trying to get Chirrup (http://
chirrup.angryamoeba.co.uk, a Twitter Comment System) to work. As the
Chirrup Script hasn't been updated since 2008 it has not implemented
the new Authentication method yet. I just tried to figure out how i
could change the Skript to work again.
I have no clue how to reacht my goal, and maybe you can help me.
This is the actual code thats does all the Twitter API stuff right
now, ho can i alter to code to use the new auth?
<?php
require_once(dirname(__FILE__)."/../../config/chirrup_config.php");
require_once(dirname(__FILE__)."/twitter_cache.php");
// The Twitter class provides an interface for making authenticated
API calls
// to twitter via curl. Since Chirrup needs only a tiny subset of
Twitter's
// API methods, although if you wish to extend it the
makeAuthenticatedRequest
// contains pretty much all you need to do so.
//
class Twitter {
// API calls
//
--------------------------------------------------------------------------------
function getReplies($since_id=false) {
// API documentation
//
// Returns the 20 most recent replies (status updates prefixed with
@username posted by users who are friends with the user being replied
to)
// to the authenticating user. Replies are only available to the
authenticating user; you can not request a list of replies to another
user whether
// public or protected.
// URL:
http://twitter.com/statuses/replies.format
// Formats: xml, json, rss, atom
// Parameters:
// page. Optional. Retrieves the 20 next most recent replies.
Ex:
http://twitter.com/statuses/replies.xml?page=3
// since. Optional. Narrows the returned results to just those
replies created after the specified HTTP-formatted date.
// The same behavior is available by setting an If-Modified-
Since header in your HTTP request. Ex:
http://twitter.com/statuses/replies.xml?since=Tue%2C+27+Mar+2007+22%3A55%3A48+GMT
// since_id. Optional. Returns only statuses with an ID greater
than (that is, more recent than) the specified ID. Ex:
http://twitter.com/statuses/replies.xml?since_id=12345
$url = "
http://twitter.com/statuses/replies.xml";
if($since_id) $url .= "?since_id=".$since_id;
return $this->makeAuthenticatedRequest($url);
}
function postStatus($username, $password, $status) {
$url = "
http://twitter.com/statuses/update.xml?status=".urlencode(
stripslashes( urldecode($status) ) );
$curler = curl_init();
curl_setopt($curler, CURLOPT_URL, $url);
curl_setopt($curler, CURLOPT_VERBOSE, 1);
curl_setopt($curler, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curler, CURLOPT_USERPWD, $username.":".$password);
curl_setopt($curler, CURLOPT_POST, 1);
$result = curl_exec($curler);
$result_headers = curl_getinfo($curler);
curl_close($curler);
// Return false by result code
return ($result_headers['http_code'] == "200")? true : false;
}
// Generic requester
//
--------------------------------------------------------------------------------
function makeAuthenticatedRequest($url) {
$curler = curl_init();
curl_setopt($curler, CURLOPT_URL, $url);
curl_setopt($curler, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curler, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($curler, CURLOPT_POST, 0);
curl_setopt($curler, CURLOPT_USERPWD,
TWITTER_USERNAME.":".TWITTER_PASSWORD);
$result = curl_exec($curler);
$result_headers = curl_getinfo($curler);
curl_close($curler);
// Key by response code to cope with "not modified" responses which
should
// technically cause the request to return true. We want to return
false in that
// instance to signify a general failure to fetch anything new.
if(!empty($result)) {
return $result;
} else {
return false;
}
}
}
?>
Thanks for your help!
Greetings Chris
PS: Is there a good way to Post code here? Like [code][/code] ??