Удаление события возвращает успех, но на самом деле не работает

Я пытаюсь удалить событие с помощью Microsoft Graph API.

Моя проблема в том, что я не мог удалить событие, даже если ответ вернул успех. (относительно официальный документ, при успехе возвращается значение null)

Мой технический стек - CakePHP v4.x, и я кодирую следующее.

$http = new Client();
$appToken = $this->getRequest()->getSession()->read('appToken');

if ($this->request->is('ajax')) {
    $this->autoRender = false;
}

$url = "https://graph.microsoft.com/v1.0/users/{user-id}/calendar/events/{event-id}";
$response_delete = json_decode($http->delete($url, [], [
            'headers' => ['Authorization' => 'Bearer '. $appToken]
        ])->getBody()->getContents(), true);
// $response_delete = null

$appToken - это токен приложения, с помощью которого пользователь компании может удалить событие.

Токен работает нормально, а также у меня уже есть полные разрешения в Active Directory Azure.

Но действительно странно то, что тот же код правильно работает на моей локальной стороне.

Я объединил все свои обновленные коды с помощью Git и несколько раз сравнил кодовую базу, но мне не повезло.

Я не уверен, почему это происходит.

Заранее спасибо.

ОБНОВЛЕНИЕ: токен приложения  введите описание изображения здесь


person hotcakedev    schedule 28.04.2021    source источник
comment
(1) Проверьте токен с помощью jwt.ms и посмотрите, есть ли у зарегистрированного пользователя необходимые разрешения для удаления элемента. Если разрешение не существует, предоставьте и попробуйте (2) Чтобы изолировать проблему за пределами вашего кода, попробуйте вышеуказанный вызов в проводнике Microsoft Graph или POSTMAN и посмотрите, сможете ли вы воспроизвести проблему.   -  person Dev    schedule 28.04.2021
comment
@Dev, спасибо. Что касается моего теста на почтальона, он отвечает Access token has expired or is not yet valid.. Но в этом нет никакого смысла, потому что я уверен, что токен приложения правильный. Может ли токен приложения отличаться в промежуточной и локальной среде? Это так странно.   -  person hotcakedev    schedule 28.04.2021
comment
Я и подозревал именно это. Получите токен доступа или новый токен обновления, если срок действия токена доступа истек, затем используйте его и попробуйте воспроизвести проблему.   -  person Dev    schedule 28.04.2021
comment
@Dev, дайте мне знать, почему это происходит. Это странно, потому что и токен приложения, и токен доступа все еще действительны.   -  person hotcakedev    schedule 28.04.2021
comment
@Dev Нет ... Он отлично работал с почтальоном. Он отвечает пустым. Моя ошибка заключалась в том, что я не использовал Bearer в качестве передней части токена приложения. Итак, токен приложения действителен, но все еще не работает.   -  person hotcakedev    schedule 28.04.2021
comment
У токена приложения нет токена обновления. Можете ли вы разобрать токен и загрузить скриншот?   -  person Carl Zhao    schedule 28.04.2021
comment
@CarlZhao Ты видишь мои обновления?   -  person hotcakedev    schedule 28.04.2021
comment
@hotcakedev Я видел это, и ваш токен выглядит нормально. Дайте мне немного времени, и я это протестирую.   -  person Carl Zhao    schedule 28.04.2021
comment
@CarlZhao Спасибо, и, как я уже упоминал, удаление события работает на моей локальной стороне, но не работает на промежуточном сервере nginx.   -  person hotcakedev    schedule 28.04.2021
comment
Другие операции Graph также не работают на промежуточном сервере nginx?   -  person Allen Wu    schedule 29.04.2021
comment
@AllenWu, Абсолютно нет. Все работает нормально, кроме API удаления.   -  person hotcakedev    schedule 29.04.2021
comment
Я бы дважды проверил, работает ли приведенный выше вызов api графика с данного сервера с помощью Graph explorer или нет (вне вашего приложения), чтобы убедиться, что он работает правильно, получает обратно информацию из Microsoft Cloud.   -  person Dev    schedule 29.04.2021
comment
@Dev, аванс есть?   -  person hotcakedev    schedule 30.04.2021
comment
@hotcakedev - я предложил вам вышеуказанный план действий и протестировал его на указанном выше сервере, чтобы проверить, можете ли вы правильно получить данные или нет. У меня нет среды, но когда я тестировал свой конец на своем тестовом стенде, вышеуказанные вызовы у меня сработали.   -  person Dev    schedule 30.04.2021
comment
Это странно. Удаление события корректно работает как для местного, так и для почтальона с одним и тем же токеном. Но на сервере это не работает.   -  person hotcakedev    schedule 19.05.2021