diff --git a/sync-facebook-events.php b/sync-facebook-events.php
index 9e1bbf7..9fac771 100644
--- a/sync-facebook-events.php
+++ b/sync-facebook-events.php
@@ -2,12 +2,12 @@
/*
Plugin Name: Sync Facebook Events
Plugin URI: http://pdxt.com
-Description: Sync Facebook Events to The Events Calendar Plugin
+Description: Sync Facebook Events to The Events Calendar Plugin
Author: Mark Nelson
Version: 1.0.9
Author URI: http://pdxt.com
*/
-
+
/* Copyright 2012 PDX Technologies, LLC. (mark.nelson@pdxt.com)
This program is free software; you can redistribute it and/or modify
@@ -32,7 +32,7 @@ function deactivate_fbes() { wp_clear_scheduled_hook('fbes_execute_sync'); }
add_action('fbes_execute_sync', 'fbes_process_events');
function update_schedule($fbes_frequency) {
-
+
wp_clear_scheduled_hook('fbes_execute_sync');
wp_schedule_event(time(), $fbes_frequency, 'fbes_execute_sync');
}
@@ -46,18 +46,19 @@ function fbes_process_events() {
$fbes_api_key = get_option('fbes_api_key');
$fbes_api_secret = get_option('fbes_api_secret');
$fbes_api_uid = get_option('fbes_api_uid');
- $fbes_api_uids = get_option('fbes_api_uids');
+ $fbes_api_uids = get_option('fbes_api_uids');
$fbes_frequency = get_option('fbes_frequency');
+// $fbes_access_token = $fbes_api_key+"|"+$fbes_api_secret;
$fbes_access_token = get_option('fbes_access_token'); // modified
-
+
$events = fbes_get_events($fbes_api_key, $fbes_api_secret, $fbes_access_token, $fbes_api_uids);
fbes_send_events($events);
}
function fbes_get_events($fbes_api_key, $fbes_api_secret, $fbes_access_token, $fbes_api_uids) {
- require 'facebook-php-sdk/facebook.php'; //modified
+ require_once 'facebook-php-sdk/facebook.php'; //modified
$facebook = new Facebook(array(
'appId' => $fbes_api_key,
@@ -71,16 +72,26 @@ function fbes_get_events($fbes_api_key, $fbes_api_secret, $fbes_access_token, $f
foreach ($fbes_api_uids as $key => $value) {
if($value!='') {
$result = $facebook->api('/'.$value.'/events', 'GET', array(
- 'fields' => 'name,start_time,end_time,location,description,timezone'
+ 'fields' => 'name,start_time,end_time,place,description,timezone',
+ 'date_format' => 'U'
));
$result = $result['data'];
- foreach($result as $k => $v)
+ foreach($result as $k => $v){
$result[$k]['uid'] = $value;
+ $result[$k]['start_time'] = strtotime($result[$k]['start_time']);
+ $result[$k]['end_time'] = strtotime($result[$k]['end_time']);
+ if($result[$k]['place']){
+ if($result[$k]['place']['name']){
+ $result[$k]['location'] = $result[$k]['place']['name'];
+ }else{
+ $result[$k]['location'] = $result[$k]['place'];
+ }
+ }
+ }
$ret = array_merge($ret, $result);
}
}
-
- return $ret;
+ return $ret;
}
function fbes_segments($url='') {
@@ -90,12 +101,11 @@ function fbes_segments($url='') {
}
function fbes_send_events($events) {
-
+ $eids = array();
$query = new WP_Query(array(
'post_type'=>'tribe_events',
'posts_per_page'=>'-1'
));
-
foreach($query->posts as $post) {
if(!empty($post->to_ping)) {
$segments = fbes_segments($post->to_ping);
@@ -114,43 +124,37 @@ function fbes_send_events($events) {
*/
}
//file_put_contents($_SERVER['DOCUMENT_ROOT'].'/fbevent.log', print_r(array(time(),$events,$eids),1)."\n".str_repeat('=',40)."\n", FILE_APPEND);
-
+
foreach($events as $event) {
-
+
$args['post_title'] = $event['name'];
-
+
$offset = get_option('gmt_offset')*3600;
-
+
$offsetStart = $event['start_time']+$offset;
$offsetEnd = $event['end_time']+$offset;
-
+
//don't update or insert events from the past.
- if($offsetEnd > time()) {
-
- $args['EventStartDate'] = date("m/d/Y", $offsetStart);
+ if($offsetStart > time()) {
+
+ $args['EventStartDate'] = date("Y-m-d", $offsetStart);
$args['EventStartHour'] = date("H", $offsetStart);
$args['EventStartMinute'] = date("i", $offsetStart);
-
- $args['EventEndDate'] = date("m/d/Y", $offsetEnd);
+
+ $args['EventEndDate'] = date("Y-m-d", $offsetEnd);
$args['EventEndHour'] = date("H", $offsetEnd);
$args['EventEndMinute'] = date("i", $offsetEnd);
-
+
$args['post_content'] = $event['description'];
$args['Venue']['Venue'] = $event['location'];
-
+
$args['post_status'] = "Publish";
$args['post_type'] = "tribe_events";
//$args['to_ping'] = $event['eid']; //damn you, sanitize_trackback_urls in 3.4
- $args['to_ping'] = 'https://www.facebook.com/events/'.$event['eid'].'/';
-
- if($args['EventStartHour'] == '22' && $event['uid'] == '256763181050120') { //why are UT events 2 hours off???
- $args['EventStartHour'] = '20';
- $args['EventEndHour'] = '22';
- $args['EventEndDate'] = date('m/d/Y',strtotime($args['EventEndDate'], '-1 day'));
- }
+ $args['to_ping'] = 'https://www.facebook.com/events/'.$event['id'].'/';
$inserting = $post_id = false;
- if (!array_key_exists($event['eid'], $eids)) {
+ if (!array_key_exists($event['id'], $eids)) {
//double check
$already_exists = false;
foreach($query->posts as $post) {
@@ -166,15 +170,17 @@ function fbes_send_events($events) {
}
}
if(!$inserting) {
- $post_id = $eids[$event['eid']];
+ $post_id = $eids[$event['id']];
+ echo "$post_id";
tribe_update_event($post_id, $args);
- echo "
Updating: ".$eids[$event['eid']];
+ echo "
Updating: ".$eids[$event['id']];
}
- if($post_id)
+ if($post_id)
update_metadata('post', $post_id, 'fb_event_obj', $event);
//eid, name, start_time, end_time, location, description
}
- reset($eids);
+ if($eids)
+ reset($eids);
}
}
@@ -188,10 +194,10 @@ function fbes_options_page() {
$fbes_api_uid = get_option('fbes_api_uid');
$fbes_api_uids = get_option('fbes_api_uids');
$fbes_frequency = get_option('fbes_frequency');
-
+
#Get new updated option values, and save them
if( !empty($_POST['update']) ) {
-
+
$fbes_api_key = $_POST['fbes_api_key'];
update_option('fbes_api_key', $fbes_api_key);
@@ -203,8 +209,9 @@ function fbes_options_page() {
$fbes_frequency = $_POST['fbes_frequency'];
update_option('fbes_frequency', $fbes_frequency);
-
- $events = fbes_get_events($fbes_api_key, $fbes_api_secret, $fbes_api_uids);
+
+ $events = fbes_get_events($fbes_api_key, $fbes_api_secret, $fbes_access_token, $fbes_api_uids);
+ // $events = fbes_get_events($fbes_api_key, $fbes_api_secret, $fbes_api_uids);
update_schedule($fbes_frequency);
@@ -218,17 +225,17 @@ function fbes_options_page() {
$fbes_api_uids[] = $_POST['fbes_api_uid'];
update_option('fbes_api_uids', $fbes_api_uids);
}
-
+
} elseif( !empty($_GET['r']) ) {
-
+
foreach ($fbes_api_uids as $key => $value)
if($fbes_api_uids[$key] == $_GET['r'])
unset($fbes_api_uids[$key]);
-
- update_option('fbes_api_uids', $fbes_api_uids);
- }
- require 'facebook-php-sdk/facebook.php'; //modified
+ update_option('fbes_api_uids', $fbes_api_uids);
+ }
+
+ require_once 'facebook-php-sdk/facebook.php'; //modified
$facebook = new Facebook(array(
'appId' => $fbes_api_key,
@@ -246,16 +253,16 @@ function fbes_options_page() {