Automate is the key. If you have a dynamic site, you can use this code to post to your twitter account automatically (can use cron job or trigger by certain event). By doing this, you can have your twitter account updated automatically and become your external marketing tool with content rich.
PHP code:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php include_once 'twitterlib.php'; $t= new twitter(); $t->username='xxxxxxxx'; $t->password='xxxxxxxxx'; $res = $t->update('testing post via php code'); if($res===false){ echo "ERROR<hr/>"; print_r($t->responseInfo); }else{ echo "SUCCESS.<hr/>Status Posted"; } ?> |
Class: (original source)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 | <?php /////////////////////////////////////////// // // twitterPHP // version 0.1 // By David Billingham // david [at] slawcup [dot] com // http://twitter.slawcup.com/twitter.class.phps // // // Example 1: // // $t= new twitter(); // $res = $t->publicTimeline(); // if($res===false){ // echo "ERROR<hr/>"; // print_r($t->responseInfo); // }else{ // echo "SUCCESS<hr/>"; // print_r($res); // } // // // Example 2: // // $t= new twitter(); // $t->username='username'; // $t->password='password'; // $res = $t->update('i am testing twitter.class.php'); // if($res===false){ // echo "ERROR<hr/>"; // print_r($t->responseInfo); // }else{ // echo "SUCCESS<hr/>Status Posted"; // } // // ////////////////////////////////////////// class twitter{ var $username=''; var $password=''; var $user_agent=''; /////////////// // // I don't know if these headers have become standards yet // but I would suggest using them. // more discussion here. // http://tinyurl.com/3xtx66 // /////////////// var $headers=array('X-Twitter-Client: ', 'X-Twitter-Client-Version: ', 'X-Twitter-Client-URL: '); var $responseInfo=array(); function twitter(){} ///////////////////////////////////////// // // Twitter API calls // // $this->update($status) // $this->publicTimeline($sinceid=false) // $this->friendsTimeline($id=false,$since=false) // $this->userTimeline($id=false,$count=20,$since=false) // $this->showStatus($id) // $this->friends($id=false) // $this->followers() // $this->featured() // $this->showUser($id) // $this->directMessages($since=false) // $this->sendDirectMessage($user,$text) // // If SimpleXMLElement exists the results will be returned as a SimpleXMLElement // otherwise the raw XML will be returned for a successful request. If the request // fails a FALSE will be returned. // // ///////////////////////////////////////// // Updates the authenticating user's status. // Requires the status parameter specified below. // // status. (string) Required. The text of your status update. Must not be // more than 160 characters and should not be // more than 140 characters to ensure optimal display. // function update($status){ $request = 'http://twitter.com/statuses/update.xml'; $postargs = 'status='.urlencode($status); return $this->process($request,$postargs); } // Returns the 20 most recent statuses from non-protected users who have // set a custom user icon. Does not require authentication. // // sinceid. (int) Optional. Returns only public statuses with an ID greater // than (that is, more recent than) the specified ID. // function publicTimeline($sinceid=false){ $qs=''; if($sinceid!==false) $qs='?since_id='.intval($sinceid); $request = 'http://twitter.com/statuses/public_timeline.xml'.$qs; return $this->process($request); } // Returns the 20 most recent statuses posted in the last 24 hours from the // authenticating user and that user's friends. It's also possible to request // another user's friends_timeline via the id parameter below. // // id. (string OR int) Optional. Specifies the ID or screen name of the user for whom // to return the friends_timeline. (set to false if you // want to use authenticated user). // since. (HTTP-formatted date) Optional. Narrows the returned results to just those // statuses created after the specified date. // function friendsTimeline($id=false,$since=false){ $qs=''; if($since!==false) $qs='?since='.urlencode($since); if($id===false) $request = 'http://twitter.com/statuses/friends_timeline.xml'.$qs; else $request = 'http://twitter.com/statuses/friends_timeline/'.urlencode($id).'.xml'.$qs; return $this->process($request); } // Returns the 20 most recent statuses posted in the last 24 hours from the // authenticating user. It's also possible to request another user's timeline // via the id parameter below. // // id. (string OR int) Optional. Specifies the ID or screen name of the user for whom // to return the user_timeline. // count. (int) Optional. Specifies the number of statuses to retrieve. May not be // greater than 20 for performance purposes. // since. (HTTP-formatted date) Optional. Narrows the returned results to just those // statuses created after the specified date. // function userTimeline($id=false,$count=20,$since=false){ $qs='?count='.intval($count); if($since!==false) $qs .= '&since='.urlencode($since); if($id===false) $request = 'http://twitter.com/statuses/user_timeline.xml'.$qs; else $request = 'http://twitter.com/statuses/user_timeline/'.urlencode($id).'.xml'.$qs; return $this->process($request); } // Returns a single status, specified by the id parameter below. The status's author // will be returned inline. // // id. (int) Required. Returns status of the specified ID. // function showStatus($id){ $request = 'http://twitter.com/statuses/show/'.intval($id).'.xml'; return $this->process($request); } // Returns the authenticating user's friends, each with current status inline. It's // also possible to request another user's friends list via the id parameter below. // // id. (string OR int) Optional. The ID or screen name of the user for whom to request // a list of friends. // function friends($id=false){ if($id===false) $request = 'http://twitter.com/statuses/friends.xml'; else $request = 'http://twitter.com/statuses/friends/'.urlencode($id).'.xml'; return $this->process($request); } // Returns the authenticating user's followers, each with current status inline. // function followers(){ $request = 'http://twitter.com/statuses/followers.xml'; return $this->process($request); } // Returns a list of the users currently featured on the site with their current statuses inline. function featured(){ $request = 'http://twitter.com/statuses/featured.xml'; return $this->process($request); } // Returns extended information of a given user, specified by ID or screen name as per the required // id parameter below. This information includes design settings, so third party developers can theme // their widgets according to a given user's preferences. // // id. (string OR int) Required. The ID or screen name of a user. // function showUser($id){ $request = 'http://twitter.com/users/show/'.urlencode($id).'.xml'; return $this->process($request); } // Returns a list of the direct messages sent to the authenticating user. // // since. (HTTP-formatted date) Optional. Narrows the resulting list of direct messages to just those // sent after the specified date. // function directMessages($since=false){ $qs=''; if($since!==false) $qs='?since='.urlencode($since); $request = 'http://twitter.com/direct_messages.xml'.$qs; return $this->process($request); } // Sends a new direct message to the specified user from the authenticating user. Requires both the user // and text parameters below. // // user. (string OR int) Required. The ID or screen name of the recipient user. // text. (string) Required. The text of your direct message. Be sure to URL encode as necessary, and keep // it under 140 characters. // function sendDirectMessage($user,$text){ $request = 'http://twitter.com/direct_messages/new.xml'; $postargs = 'user='.urlencode($user).'&text='.urlencode($text); return $this->process($request,$postargs); } // internal function where all the juicy curl fun takes place // this should not be called by anything external unless you are // doing something else completely then knock youself out. function process($url,$postargs=false){ $ch = curl_init($url); if($postargs !== false){ curl_setopt ($ch, CURLOPT_POST, true); curl_setopt ($ch, CURLOPT_POSTFIELDS, $postargs); } if($this->username !== false && $this->password !== false) curl_setopt($ch, CURLOPT_USERPWD, $this->username.':'.$this->password); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_NOBODY, 0); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_USERAGENT, $this->user_agent); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $this->headers); $response = curl_exec($ch); $this->responseInfo=curl_getinfo($ch); curl_close($ch); if(intval($this->responseInfo['http_code'])==200){ if(class_exists('SimpleXMLElement')){ $xml = new SimpleXMLElement($response); return $xml; }else{ return $response; } }else{ return false; } } } ?> |