#!/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; } function fetch($bearer_token, $query){ $url = "https://api.twitter.com/1.1/statuses/user_timeline.json?"; $headers = array( "GET /1.1/statuses/user_timeline.json?".$query." 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.$query); // set url to send to curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // set custom headers curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // return output curl_setopt($ch, CURLOPT_HEADER, true); $content = curl_exec($ch); list($header, $json) = explode("\r\n\r\n", $content, 2); curl_close($ch); file_put_contents('php://stderr', $header . "\n\n"); // No results returned, Twitter API issue if (strlen($json) == 2) { exit(1); }; return $json; } // $bearer_token = get_bearer_token(); // bearer token seems to last require("secret.php"); echo "bearer token: " . $bearer_token . "\n"; print fetch($bearer_token, $urlargs); // search for the work 'test' //invalidate_bearer_token($bearer_token); // invalidate the token ?>