Как улучшить время отклика из Outlook API

Я работаю с Outlook Calendar API, и ответ, который я получаю, занимает несколько минут, что очень долго и разочаровывает, что еще более расстраивает, это 5 из 10 раз, когда я не получаю результаты из Calendar API, не уверен, что это из-за медленного ответ от Calendar API

В настоящее время я отправляю запрос curl, если все идет хорошо, я получаю необходимые результаты, но если я получаю ошибку в ответе curl, например, истек срок действия токена, то мне нужно отправить еще один запрос curl, чтобы получить обновленный токен, а затем второй запрос curl для получения записей с использованием обновленного токена,

вот мой php код

$fields = array(
    'name' => $event_name,
    'description' => $event_desc,
    'start_time' => $meeting_start_time,
    'event_start_time' => $meeting_end_time,
    'access_token' => $token,
    'method' => "POST"
);

$add_new_meeting_url = "https://apis.live.net/v5.0/$live_id/events" . "?" . http_build_query($fields);
$add_new_meeting = curl_init();
curl_setopt($add_new_meeting, CURLOPT_URL, $add_new_meeting_url);
curl_setopt($add_new_meeting, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($add_new_meeting, CURLOPT_CONNECTTIMEOUT, 0);
$get_new_meeting_curl_response = curl_exec($add_new_meeting);
curl_close($add_new_meeting);
$new_event = json_decode($get_new_meeting_curl_response, true);

if ($new_event['error']) {
    $refresh_token_url = "https://login.live.com/oauth20_token.srf?client_id=client_id&client_secret=secret_key&redirect_uri=www.xyz.com&grant_type=refresh_token&refresh_token=$refresh_token";
    $ch_refresh_token = curl_init();
    curl_setopt($ch_refresh_token, CURLOPT_URL, $refresh_token_url);
    curl_setopt($ch_refresh_token, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch_refresh_token, CURLOPT_CONNECTTIMEOUT, 0);
    $get_refresh_token_curl_response = curl_exec($ch_refresh_token);
    curl_close($ch_refresh_token);

    $new_access_token = json_decode($get_refresh_token_curl_response, true);


    $user_id = $adviser_id;
    $params = array(
        ':user_id' => $user_id,
        ':access_token' => $new_access_token['access_token']

    );

    $stmt = parent::query("UPDATE `schedule_access_token` SET `access_token` = :access_token WHERE `user_id` = :user_id;", $params);

    $params = array(':user_id' => $user_id);
    $stmt = parent::query("SELECT * FROM `schedule_access_token` WHERE `user_id` = :user_id;", $params);
    if ($stmt->rowCount() > 0) {
        foreach ($stmt->fetch(PDO::FETCH_ASSOC) as $field => $value) {
            $this->options[$field] = $value;
        }
    }

    $live_id = $this->options['live_id'];
    $token = $this->options['access_token'];
    $refresh_token = $this->options['refresh_token'];
    $user_calendar = $this->options['user_calendar_id'];

    $fields = array(
        'name' => $event_name,
        'description' => $event_desc,
        'start_time' => $meeting_start_time,
        'event_start_time' => $meeting_end_time,
        'access_token' => $token,
        'method' => "POST"
    );

    $add_new_meeting_url = "https://apis.live.net/v5.0/$live_id/events" . "?" . http_build_query($fields);

    $add_new_meeting = curl_init();
    curl_setopt($add_new_meeting, CURLOPT_URL, $add_new_meeting_url);
    curl_setopt($add_new_meeting, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($add_new_meeting, CURLOPT_CONNECTTIMEOUT, 0);
    $get_new_meeting_curl_response = curl_exec($add_new_meeting);
    curl_close($add_new_meeting);
    $new_event = json_decode($get_new_meeting_curl_response, true);

}

Поскольку я все зависит от ответа от API, что я могу сделать, чтобы ускорить ответ? Я буду очень признателен за любую помощь здесь, так как это сводит меня с ума

0 ответов

Другие вопросы по тегам