From 535373068b817c9da37de5ac5b27338b204f559b Mon Sep 17 00:00:00 2001 From: Kai Hendry Date: Sun, 14 Jul 2013 20:15:52 +0800 Subject: [PATCH] Doing a merge --- Oauth.php | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 Oauth.php diff --git a/Oauth.php b/Oauth.php new file mode 100644 index 0000000..bca7ffc --- /dev/null +++ b/Oauth.php @@ -0,0 +1,136 @@ +#!/usr/bin/env php +{'access_token'}; +} + +/** +* Invalidates the Bearer Token +* Should the bearer token become compromised or need to be invalidated for any reason, +* call this method/function. +*/ +function invalidate_bearer_token($bearer_token){ + $encoded_consumer_key = urlencode(CONSUMER_KEY); + $encoded_consumer_secret = urlencode(CONSUMER_SECRET); + $consumer_token = $encoded_consumer_key.':'.$encoded_consumer_secret; + $base64_encoded_consumer_token = base64_encode($consumer_token); + // step 2 + $url = "https://api.twitter.com/oauth2/invalidate_token"; // url to send data to for authentication + $headers = array( + "POST /oauth2/invalidate_token HTTP/1.1", + "Host: api.twitter.com", + "User-Agent: jonhurlock Twitter Application-only OAuth App v.1", + "Authorization: Basic ".$base64_encoded_consumer_token."", + "Accept: */*", + "Content-Type: application/x-www-form-urlencoded", + "Content-Length: ".(strlen($bearer_token)+13)."" + ); + + $ch = curl_init(); // setup a curl + curl_setopt($ch, CURLOPT_URL,$url); // set url to send to + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // set custom headers + curl_setopt($ch, CURLOPT_POST, 1); // send as post + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // return output + curl_setopt($ch, CURLOPT_POSTFIELDS, "access_token=".$bearer_token.""); // post body/fields to be sent + $header = curl_setopt($ch, CURLOPT_HEADER, 1); // send custom headers + $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + $retrievedhtml = curl_exec ($ch); // execute the curl + curl_close($ch); // close the curl + return $retrievedhtml; +} + +/** +* Search +* Basic Search of the Search API +* Based on https://dev.twitter.com/docs/api/1.1/get/search/tweets +*/ +function search_for_a_term($bearer_token, $query, $result_type='mixed', $count='15'){ + $url = "https://api.twitter.com/1.1/statuses/user_timeline.json"; + $q = urlencode(trim($query)); // query term + $formed_url ='?q='.$q; // fully formed url + if($result_type!='mixed'){$formed_url = $formed_url.'&result_type='.$result_type;} // result type - mixed(default), recent, popular + if($count!='15'){$formed_url = $formed_url.'&count='.$count;} // results per page - defaulted to 15 + $formed_url = $formed_url.'&include_entities=true'; // makes sure the entities are included, note @mentions are not included see documentation + $headers = array( + "GET /1.1/search/tweets.json".$formed_url." HTTP/1.1", + "Host: api.twitter.com", + "User-Agent: jonhurlock Twitter Application-only OAuth App v.1", + "Authorization: Bearer ".$bearer_token."", + ); + $ch = curl_init(); // setup a curl + curl_setopt($ch, CURLOPT_URL,$url.$formed_url); // set url to send to + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // set custom headers + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // return output + $retrievedhtml = curl_exec ($ch); // execute the curl + curl_close($ch); // close the curl + return $retrievedhtml; +} + +// lets run a search. +$bearer_token = get_bearer_token(); // get the bearer token +print search_for_a_term($bearer_token, "test"); // search for the work 'test' +//invalidate_bearer_token($bearer_token); // invalidate the token +?>