Function Reference: gdfi_get_fb_meta

Summary

This function has not been documented yet.

Source Code

function gdfi_get_fb_meta($page_id, $event = false)
{
    global $wpdb;
    $gdfi_config = get_option('gdfi_config');
    $fields = gdfi_page_fields($event);
    $url = 'https://graph.facebook.com/v2.4/' . $page_id . '?metadata=1&fields=' . $fields . '&access_token=' . $gdfi_config['access_token'];

    $result = wp_remote_get($url, array('timeout' => 15));

    if (!empty($result['response']['code']) && $result['response']['code'] == 200) {
        $result_arr = json_decode($result['body']);

        if (isset($result_arr->videos->data[0]) && $result_arr->videos->data[0]) {
            $videos = gdfi_get_videos($result_arr->videos->data);
            $result_arr->videos = $videos;
            $result['body'] = json_encode($result_arr);
        }

        if (isset($result_arr->photos->data[0]) && $result_arr->photos->data[0]) {
            $photos = gdfi_get_images($result_arr->photos->data);

            if ($photos !== null) {
                $result_arr->photos = $photos;
                $result['body'] = json_encode($result_arr);
            }
        }

        if (isset($result_arr->cover->source) && $result_arr->cover->source) {
                $result_arr->photos = $result_arr->cover->source.','.$result_arr->photos;
                $result['body'] = json_encode($result_arr);
        }

        if (isset($result_arr->emails[0]) && $result_arr->emails[0]) {
            $email = $result_arr->emails[0];

            if ($email) {
                $result_arr->email = $email;
                $result['body'] = json_encode($result_arr);
            }
        }

        if (isset($result_arr->owner->id) && $result_arr->owner->id) {
            $owner = gdfi_get_fb_owner($result_arr->owner->id);
            if ($owner) {
                $result_arr = (object)array_merge((array)$result_arr, (array)$owner);
                $result['body'] = json_encode($result_arr);
            }
        }

        if ($event && isset($result_arr->place->location) && $result_arr->place->location) {
            $location = $result_arr->place->location;

            if ($location) {
                $result_arr->location = $result_arr->place->location;
                $result['body'] = json_encode($result_arr);
            }
        }

        $format = function_exists('geodir_event_field_date_format') ? geodir_event_field_date_format() : 'Y-m-d';
        if (isset($result_arr->start_time) && $result_arr->start_time) {
            $date = (array)date_create($result_arr->start_time);
            $datetime = strtotime($date['date']);
            $result_arr->event_start_date = date_i18n($format, $datetime);
            $result_arr->event_start_time = date_i18n('H:i', $datetime);
            $result['body'] = json_encode($result_arr);
        }

        if (isset($result_arr->end_time) && $result_arr->end_time) {
            $date = (array)date_create($result_arr->end_time);
            $datetime = strtotime($date['date']);
            $result_arr->event_end_date = date_i18n($format, $datetime);
            $result_arr->event_end_time = date_i18n('H:i', $datetime);            
            $result['body'] = json_encode($result_arr);
        }
        return $result['body'];
    } else {
        $result_arr = json_decode($result['body']);
        if (isset($result_arr->error->code)) {
            if ($result_arr->error->code == '100') {
                return __('Something went wrong[100], this page/event may not be public', 'geodir_socialimporter');
            } elseif ($result_arr->error->code == '104') {
                return __('Something went wrong[104], the admin must authorize this app in the backend', 'geodir_socialimporter');
            } else {
                return __('Something went wrong', 'geodir_socialimporter') . "[" . $result_arr->error->code . "]";
            }
        }

        return __('Something went wrong[111]', 'geodir_socialimporter');
    }
}