コード例 #1
0
ファイル: facebook.class.php プロジェクト: sgh1986915/php-crm
 public function handle_process($process, $options = array())
 {
     switch ($process) {
         case 'send_social_message':
             check_admin_referer('social_send-message');
             $message_count = 0;
             if (isset($options['social_message_id']) && (int) $options['social_message_id'] > 0 && isset($_POST['facebook_message']) && !empty($_POST['facebook_message'])) {
                 // we have a social message id, ready to send!
                 // which facebook accounts are we sending too?
                 $facebook_accounts = isset($_POST['compose_facebook_id']) && is_array($_POST['compose_facebook_id']) ? $_POST['compose_facebook_id'] : array();
                 foreach ($facebook_accounts as $facebook_account_id => $send_pages) {
                     $facebook_account = new ucm_facebook_account($facebook_account_id);
                     if ($facebook_account->get('social_facebook_id') == $facebook_account_id) {
                         /* @var $available_pages ucm_facebook_page[] */
                         $available_pages = $facebook_account->get('pages');
                         if ($send_pages) {
                             foreach ($send_pages as $facebook_page_id => $tf) {
                                 if (!$tf) {
                                     continue;
                                 }
                                 // shouldnt happen
                                 // see if this is an available page.
                                 if (isset($available_pages[$facebook_page_id])) {
                                     // push to db! then send.
                                     $facebook_message = new ucm_facebook_message($facebook_account, $available_pages[$facebook_page_id], false);
                                     $facebook_message->create_new();
                                     $facebook_message->update('social_facebook_page_id', $available_pages[$facebook_page_id]->get('social_facebook_page_id'));
                                     $facebook_message->update('social_message_id', $options['social_message_id']);
                                     $facebook_message->update('social_facebook_id', $facebook_account->get('social_facebook_id'));
                                     $facebook_message->update('summary', isset($_POST['facebook_message']) ? $_POST['facebook_message'] : '');
                                     if (isset($_POST['track_links']) && $_POST['track_links']) {
                                         $facebook_message->parse_links();
                                     }
                                     $facebook_message->update('type', 'pending');
                                     $facebook_message->update('link', isset($_POST['link']) ? $_POST['link'] : '');
                                     $facebook_message->update('data', json_encode($_POST));
                                     $facebook_message->update('user_id', get_current_user_id());
                                     // do we send this one now? or schedule it later.
                                     $facebook_message->update('status', _SOCIAL_MESSAGE_STATUS_PENDINGSEND);
                                     if (isset($options['send_time']) && !empty($options['send_time'])) {
                                         // schedule for sending at a different time (now or in the past)
                                         $facebook_message->update('last_active', $options['send_time']);
                                     } else {
                                         // send it now.
                                         $facebook_message->update('last_active', 0);
                                     }
                                     if (isset($_FILES['picture']['tmp_name']) && is_uploaded_file($_FILES['picture']['tmp_name'])) {
                                         $facebook_message->add_attachment($_FILES['picture']['tmp_name']);
                                     }
                                     $now = time();
                                     if (!$facebook_message->get('last_active') || $facebook_message->get('last_active') <= $now) {
                                         // send now! otherwise we wait for cron job..
                                         if ($facebook_message->send_queued(isset($_POST['debug']) && $_POST['debug'])) {
                                             $message_count++;
                                         }
                                     } else {
                                         $message_count++;
                                         if (isset($_POST['debug']) && $_POST['debug']) {
                                             echo "Message will be sent in cron job after " . print_date($facebook_message->get('last_active'), true);
                                         }
                                     }
                                 } else {
                                     // log error?
                                 }
                             }
                         }
                     }
                 }
             }
             return $message_count;
             break;
         case 'save_facebook':
             $social_facebook_id = isset($_REQUEST['social_facebook_id']) ? (int) $_REQUEST['social_facebook_id'] : 0;
             check_admin_referer('save-facebook' . $social_facebook_id);
             $facebook = new ucm_facebook_account($social_facebook_id);
             if (isset($_POST['butt_delete'])) {
                 $facebook->delete();
                 $redirect = 'admin.php?page=simple_social_inbox_facebook_settings';
             } else {
                 $facebook->save_data($_POST);
                 $social_facebook_id = $facebook->get('social_facebook_id');
                 if (isset($_POST['butt_save_reconnect'])) {
                     $redirect = $facebook->link_connect();
                 } else {
                     $redirect = $facebook->link_edit();
                 }
             }
             header("Location: {$redirect}");
             exit;
             break;
     }
 }
コード例 #2
0
                        $user_profile = $facebook_api->api('/me');
                    } catch (FacebookApiException $e) {
                        $user = null;
                    }
                }
                if ($user) {
                    $facebook_api->setExtendedAccessToken();
                    //echo 'extending access token...<br>';
                    $access_token = $facebook_api->getAccessToken();
                    //echo 'Current access token is: '.$access_token.'<br>';
                    if ($access_token) {
                        $facebook->update('facebook_token', $access_token);
                        // success!
                        // now we load in a list of facebook pages to manage and redirect the user back to the 'edit' screen where they can continue managing the account.
                        $facebook->graph_load_available_pages();
                        $url = $facebook->link_edit();
                        ?>
					<p>Congratulations! You have successfully linked your Facebook account with the Simple Social plugin
						through your own Facebook App. Please click the button below:</p>
					<p><a href="<?php 
                        echo $facebook->link_edit();
                        ?>
" class="button">Click here to
							continue.</a></p>
					<?php 
                        /* $url = 'https://graph.facebook.com/oauth/client_code?access_token='.$access_token.'&redirect_uri='.urlencode( admin_url($facebook->link_connect()) ).'&client_id='.$settings['appId'].'&client_secret='.$settings['secret'].'';
                        						$response = wp_remote_get( $url );
                        						if ( is_wp_error( $response ) || !$response['body'] ) {
                        							$error_message = $response->get_error_message();
                        							die("Something went wrong: $error_message");
                        						}