function unshorten_url($url) { //global $queryj; $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); $out = curl_exec($ch); $real_url = $url; //default.. (if no redirect) if (preg_match("/location: (.*)/i", $out, $redirect)) { $real_url = $redirect[1]; } if (strstr($real_url, "bit.ly")) { //the redirect is another shortened url $real_url = unshorten_url($real_url); } return $real_url; /**/ }
function postToTwitter($message, $mediaURL = null) { $tag = str_replace(' ', '', SYSTEM_SITE_NAME . SYSTEM_YEAR); $message = $message . ' #' . $tag; if (strlen($message) > 140) { return false; } $connection = new TwitterOAuth(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, TWITTER_ACCESS_TOKEN, TWITTER_ACCESS_TOKEN_SECRET); $params = ['status' => $message]; if ($mediaURL) { $mediaURL = unshorten_url($mediaURL); $media = $connection->upload('media/upload', ['media' => $mediaURL]); if ($media) { $params['media_ids'] = $media->media_id_string; } } return $connection->post("statuses/update", $params); }