コード例 #1
0
 /**
  * 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);
 }
コード例 #2
0
ファイル: ww_s1_tw.php プロジェクト: jacquesbagui/ofuz
</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();
コード例 #3
0
ファイル: tw_callback.php プロジェクト: jacquesbagui/ofuz
  * 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');
コード例 #4
0
 /**
  *  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;
     }
 }
コード例 #5
0
/** 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');
コード例 #6
0
</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