예제 #1
0
 /**
  * Sends a tweet via Twitter
  *
  * @param string	$message	Message to send
  * @param string	$user		UserId of the user to send the message for
  * @param bool		$cutMessage	Should the message be cut if it is longer than 140 characters,
  *								if set to false, an error will be returned if the message is longer than 140 characters
  *
  * @return int	-1 if the user did not authorize the site with twitter,
  *							-2, if the message is longer than 140 characters,
  *							a negative number corresponding to the HTTP response codes from twitter
  *							(http://dev.twitter.com/pages/streaming_api_response_codes)
  *  							or a positive tweet id of the message
  */
 function tweet($message, $user, $cutMessage = false)
 {
     global $prefs;
     $token = $this->get_user_preference($user, 'twitter_token', '');
     if ($token == '') {
         $this->add_log('tweet', 'user not registered with twitter');
         return -1;
     }
     if ($cutMessage) {
         $message = substr($message, 0, 140);
     } else {
         if (strlen($message) > 140) {
             $this->add_log('tweet', 'message too long');
             return -2;
         }
     }
     $token = unserialize($token);
     $this->options['callbackUrl'] = $this->getURL();
     $this->options['consumerKey'] = $prefs['socialnetworks_twitter_consumer_key'];
     $this->options['consumerSecret'] = $prefs['socialnetworks_twitter_consumer_secret'];
     $twitter = new Zend_Service_Twitter(array('oauthOptions' => array('consumerKey' => $prefs['socialnetworks_twitter_consumer_key'], 'consumerSecret' => $prefs['socialnetworks_twitter_consumer_secret']), 'accessToken' => $token));
     try {
         $response = $twitter->statusesUpdate($message);
     } catch (Zend_Service_Twitter_Exception $e) {
         $this->add_log('tweet', 'twitter error ' . $e->getMessage());
         return -$e->getCode();
     }
     if (!$response->isSuccess()) {
         $errors = $response->getErrors();
         $this->add_log('tweet', 'twitter response: ' . $errors[0]->message . ' - Code: ' . $errors[0]->code);
         return -$errors['code'];
     } else {
         $id = $response->toValue();
         return $id->id_str;
     }
 }