/** * Sends a Direct Message to yourself or to a follower as a RADRIA Event * @param object EventControler * * Example: * * $do_twitter = new OfuzTwitter(); * $do_twitter->sessionPersistent('do_twitter', 'signout.php', 36000); * $e_tw_message = new Event('do_twitter->eventSendDirectMessage'); * $e_tw_message->addParam('goto',$_SERVER['PHP_SELF']); * $e_tw_message->addParam('message','Hello from Ofuz!'); * echo _('Click '),$e_tw_message->getLink('HERE'),' to send a test tweet.'; */ function eventSendDirectMessage(EventControler $evtcl) { $token = unserialize($this->getAccessToken()); $tw_user_id = $token->getParam('user_id'); $config = $this->getTwitterConfig(); $twitter = new Ofuz_Service_Twitter($tw_user_id, $config, $token); $response = $twitter->directMessageNew($tw_user_id, $evtcl->message); }
</span> </div> </div> <div class="contentfull"> <div class="spacerblock_80"></div> <div class="spacerblock_80"> <div id="waitimage" class="center_text"> <img class="center_elem" src="/images/wait30.gif" width="30" height="30" alt="" /> </div> </div> <?php $token = unserialize($serialized_token); $tw_user_id = $token->getParam('user_id'); $tw_screen_name = $token->getParam('screen_name'); $tw_config = $do_twitter->getTwitterConfig(); $ofuz_twitter = new Ofuz_Service_Twitter($tw_user_id, $tw_config, $token); $friends = $ofuz_twitter->userFriends(array('id' => $tw_user_id)); if (count($friends->user) > 0) { foreach ($friends->user as $user) { $user_id = $user->id; $name = $user->name; // will contain the first and last name $screen_name = $user->screen_name; $description = $user->description; $profile_image_url = $user->profile_image_url; $url = $user->url; $friend_data = array('user_id' => $user_id, 'name' => $name, 'screen_name' => $screen_name, 'description' => $description, 'profile_image_url' => $profile_image_url, 'url' => $url); $do_twitter->importTwitterFriend($friend_data); } //rebuilding the userXX_contact table $contact_view = new ContactView();
* Record the Access Token if necessary and return to the appropriate page */ if (isset($_SESSION['TWITTER_ENTRY'])) { if ($_SESSION['TWITTER_ENTRY'] == 'user_login.php') { $iduser = $do_twitter->getOfuzUserID($tw_user_id); if ($iduser) { $do_user = new User(); $do_user->iduser = $iduser; $do_user->setSessionVariable(); $do_login_audit = new LoginAudit(); $do_login_audit->do_login_audit('Twitter'); header('Location: index.php'); exit; } else { $config = $do_twitter->getTwitterConfig(); $ofuz_twitter = new Ofuz_Service_Twitter($tw_user_id, $config, $token); $userdetail = $ofuz_twitter->userShow($tw_user_id); list($firstname, $lastname) = split(' ', $userdetail->name); $_SESSION['TWITTER_REGISTER'] = array('tw_user_id' => $tw_user_id, 'tw_screen_name' => $tw_screen_name, 'tw_token' => $tw_token, 'firstname' => $firstname, 'lastname' => $lastname); header('Location: tw_user_register.php'); exit; } header('Location: user_login.php'); } else { if ($_SESSION['TWITTER_ENTRY'] == 'settings_twitter.php') { $do_twitter->setAccessToken($tw_user_id, $tw_screen_name, $tw_token); header('Location: settings_twitter.php'); exit; } } header('Location: user_login.php');
/** * sendMessage * This abstract the message sending so we use a general function * that will send email or facebook or twitter based on the user * preferences and settings. * its possible to generate an EmailTemplate on the fly with no records in the DB * Here is an exemple: * <code php> * $do_template = new EmailTemplate(); * $do_template->senderemail = "*****@*****.**"; * $do_template->sendername = "Philippe Lewicki"; * $do_template->subject = "This is an example"; * $do_template->bodytext = "This is the content of the sample message"; * $do_template->bodyhtml = nl2br($do_template->bodytext); * </code> * * An other example more OO / stylish * <code php> * $do_template = new EmailTemplate(); * $do_template->setFrom("*****@*****.**", "Philippe Lewicki") * ->setSubject("This is an example") * ->setMessage("This is the content of the sample message"); * </code> * setFrom() is optional, if not provided it takes the do_User data * * Then send the message with: $contact->sendMessage($do_template); * * If you used a saved EmailTemplate like * $do_template = new EmailTemplate("my template in email template table"); * and want the sender to be the currently signed in user, make sure the senderemail field * is empty. * * @param $message an EmailTemplate object. * @param $values an array with values to merge, optional. * */ function sendMessage($template, $values = array()) { if (!is_object($template)) { return false; } if (empty($values)) { $values = $this->getValues(); } $this->last_message_sent = false; $do_contact_email = $this->getChildContactEmail(); $email_to = $do_contact_email->getDefaultEmail(); $this->setLog("\n Sending message to:" . $email_to); $contact_link = '<a href="/Contact/' . $this->idcontact . '">' . $this->firstname . ' ' . $this->lastname . '</a>'; if (strlen($email_to) > 4) { if ($this->email_optout != 'y') { $emailer = new Ofuz_Emailer('UTF-8'); if (strlen($template->senderemail) == 0) { $template->setFrom($_SESSION['do_User']->email, $_SESSION['do_User']->getFullName()); } $emailer->setEmailTemplate($template); $emailer->mergeArrayWithFooter($values); $emailer->addTo($email_to); $this->last_message_sent = true; return $emailer->send(); } else { $_SESSION['in_page_message'] .= _("<br>" . $contact_link . " has opt-out and will not receive this email"); } } elseif (strlen($this->tw_user_id) > 0) { // send direct message using twitter api. try { $do_twitter = new OfuzTwitter(); $tw_config = $do_twitter->getTwitterConfig(); $serialized_token = $do_twitter->getAccessToken(); $token = unserialize($serialized_token); $ofuz_twitter = new Ofuz_Service_Twitter($token->getParam('user_id'), $tw_config, $token); $followers = $ofuz_twitter->userFollowers(false); if (is_object($followers) && count($followers->user) > 0) { foreach ($followers->user as $follower) { if ($follower->id == $this->tw_user_id) { $merge = new MergeString(); $message = $merge->withArray($template->bodytext, $values); $ofuz_twitter->directMessageNew($this->tw_user_id, $message); $do_contact_notes = new ContactNotes(); $do_contact_notes->iduser = $_SESSION['do_User']->iduser; $do_contact_notes->note = $message; $do_contact_notes->date_added = date('Y-m-d'); $do_contact_notes->idcontact = $this->idcontact; $do_contact_notes->add(); return true; } } } $_SESSION['in_page_message'] .= _("<br>Notification can not be sent to " . $contact_link); } catch (Exception $e) { $_SESSION['in_page_message'] .= _("<br>Notification can not be sent to " . $contact_link); } } elseif ($this->fb_userid && $_SESSION["do_User"]->global_fb_connected) { // send message using facebook api. include_once 'facebook_client/facebook.php'; include_once 'class/OfuzFacebook.class.php'; $facebook = new Facebook(FACEBOOK_API_KEY, FACEBOOK_APP_SECRET); try { $msg = _(' has sent the following message using ofuz') . '<br />'; $msg .= '<b>' . $template->subject . '</b><br/>' . $template->bodyhtml; $facebook->api_client->notifications_send($this->fb_userid, $msg, 'user_to_user'); //$this->last_message_sent = true; } catch (Exception $e) { $_SESSION['in_page_message'] .= _("<br>Notification can not be sent to " . $contact_link); } } else { $_SESSION['in_page_message'] .= _("<br>" . $contact_link . " doesn't have a valid email address, facebook account, or twitter id."); } if ($this->last_message_sent) { return true; } else { return false; } }
/** Ofuz Open Source version is released under the GNU Affero General Public License, please read the full license at: http://www.gnu.org/licenses/agpl-3.0.html **/ //$GLOBALS['cfg_full_path'] = '/server/vhtdocs/ofuz.net/'; include_once 'config.php'; $do_twitter = new OfuzTwitter(); $tw_config = $do_twitter->getTwitterConfig(); $do_twitter->cronGetAccessTokens(); $do_twitter->getValues(); if ($do_twitter->getNumRows() > 0) { while ($do_twitter->next()) { set_time_limit(300); $iduser = $do_twitter->iduser; $serialized_token = $do_twitter->tw_token; if ($serialized_token) { $token = unserialize($serialized_token); $tw_user_id = $token->getParam('user_id'); $ofuz_twitter = new Ofuz_Service_Twitter($tw_user_id, $tw_config, $token); $imported = array(); // Import Notes from friends $friends = $ofuz_twitter->userFriends(array('id' => $tw_user_id)); //echo '<pre>'; print_r($friends); echo '</pre>'; if (is_object($friends) && count($friends->user) > 0) { foreach ($friends->user as $user) { //echo '<pre>'; print_r($user->status); echo '</pre>'; $idcontact = $do_twitter->cronFeedStatus($iduser, $user->id, strtotime($user->status->created_at)); if ($idcontact !== false) { $link = '<br /><a href="http://twitter.com/' . $user->screen_name . '" target="_blank">Back to the Source of the Article</a><br />'; $note_content = nl2br(strip_tags($user->status->text)); $do_contact_note = new ContactNotes(); $do_contact_note->idcontact = $idcontact; $do_contact_note->note = $note_content . $link; $do_contact_note->date_added = date('Y-m-d');
</span> </div> </div> <div class="contentfull"> <div class="spacerblock_80"></div> <div class="spacerblock_80"> <div id="waitimage" class="center_text"> <img class="center_elem" src="/images/wait30.gif" width="30" height="30" alt="" /> </div> </div> <?php $token = unserialize($serialized_token); $tw_user_id = $token->getParam('user_id'); $tw_screen_name = $token->getParam('screen_name'); $tw_config = $do_twitter->getTwitterConfig(); $ofuz_twitter = new Ofuz_Service_Twitter($tw_user_id, $tw_config, $token); $followers = $ofuz_twitter->userFollowers(false); // false = do not fetch Status if (count($followers->user) > 0) { foreach ($followers->user as $user) { $user_id = $user->id; $name = $user->name; // will contain the first and last name $screen_name = $user->screen_name; $description = $user->description; $profile_image_url = $user->profile_image_url; $url = $user->url; $friend_data = array('user_id' => $user_id, 'name' => $name, 'screen_name' => $screen_name, 'description' => $description, 'profile_image_url' => $profile_image_url, 'url' => $url); $do_twitter->importTwitterFriend($friend_data, 'Follower'); } //rebuilding the userXX_contact table