CMS for the late garbage.fm
at main 66 lines 2.0 kB view raw
1<?php 2 3class Twitter { 4 static $TWITTER_HOST = "https://api.twitter.com"; 5 6 static function oauth_consumer() { 7 if (!defined("TWITTER_CONSUMER_KEY") || !TWITTER_CONSUMER_KEY || 8 !defined("TWITTER_CONSUMER_SECRET") || !TWITTER_CONSUMER_SECRET) 9 throw new Exception("TWITTER_CONSUMER_KEY and " 10 . "TWITTER_CONSUMER_SECRET must be defined"); 11 12 $oauth = new OAuth(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET); 13 $oauth->enableDebug(); 14 return $oauth; 15 } 16 17 static function new_request_token($callback = null) { 18 return Twitter::oauth_consumer()->getRequestToken( 19 static::$TWITTER_HOST . "/oauth/request_token", $callback); 20 } 21 22 static function new_authorize_url($token) { 23 return static::$TWITTER_HOST . "/oauth/authorize?oauth_token=" 24 . $token; 25 } 26 27 static function oauth_request($req, $method = "GET", $post_data = array()) { 28 $settings = Settings::fetch(); 29 30 $oauth_consumer = Twitter::oauth_consumer(); 31 $oauth_consumer->setToken($settings->twitter_oauth_token, 32 $settings->twitter_oauth_secret); 33 $oauth_consumer->fetch(static::$TWITTER_HOST . $req, $post_data, 34 $method); 35 36 return $oauth_consumer->getLastResponse(); 37 } 38 39 static function verify_oauth_credentials($token, $secret, $in_verifier) { 40 $consumer = Twitter::oauth_consumer(); 41 $consumer->setToken($token, $secret); 42 43 $at = $consumer->getAccessToken(static::$TWITTER_HOST 44 . "/oauth/access_token", null, $in_verifier); 45 46 if (empty($at["screen_name"])) 47 throw new Exception("no access token returned"); 48 49 $consumer->setToken($at["oauth_token"], $at["oauth_token_secret"]); 50 $consumer->fetch(static::$TWITTER_HOST 51 . "/1.1/account/verify_credentials.json"); 52 $json = json_decode($consumer->getLastResponse(), true); 53 54 if (empty($json["screen_name"])) 55 throw new Exception("no screen name in json from verification?"); 56 57 $settings = Settings::fetch(); 58 $settings->twitter_oauth_token = $at["oauth_token"]; 59 $settings->twitter_oauth_secret = $at["oauth_token_secret"]; 60 $settings->save(); 61 62 return true; 63 } 64} 65 66?>