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; } }
$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"); }