Получение одного сообщения от Графа - PullRequest
2 голосов
/ 22 апреля 2019

Я пытаюсь получить одно электронное письмо из почтового ящика Office 365.

Я отправляю электронное письмо id в свое приложение через POST (req.body.id) и затем вызываю этот код, чтобы получить некоторые свойства электронной почты:

router.post('/id', async function(req, res, next) {
    console.log("email with ID -> ", req.body.id)
    let parms = { title: 'Inbox', active: { inbox: true } };
    const accessToken = await authHelper.getAccessToken(req.cookies, res);
    const userName = req.cookies.graph_user_name;

    if (accessToken && userName) {
    parms.user = userName;
    // Initialize Graph client
    const client = graph.Client.init({
        authProvider: (done) => {
        done(null, accessToken);
        }
    });

    try {
        const result = await client
        .api('/me/messages/', req.body.id)
        .select('id,subject,from,toRecipients,ccRecipients,body,sentDateTime,receivedDateTime')
        .get();

        parms.messages = result.value;
        console.log("email -> ", result.value);
        res.render('message', parms);

    } catch (err) {
        parms.message = 'Error retrieving messages';
        parms.error = { status: `${err.code}: ${err.message}` };
        parms.debug = JSON.stringify(err.body, null, 2);
        res.render('error', parms);
        }

    } else {
    // Redirect to home
    res.redirect('/');
    }
});

На данный момент result.value содержит все сообщения в почтовом ящике, а не только сообщение с предоставленным id.

Может кто-нибудь сказать мне, где моя ошибка, пожалуйста?

1 Ответ

2 голосов
/ 22 апреля 2019

Метод api имеет один параметр пути.Называя его как .api('/me/messages/', req.body.id), вы отправляете ему путь ("/ me / messages /") вместе с дополнительным параметром, который он игнорирует.

Вам необходимо отправить одну строку, поэтому вам нужно добавить req.body.id к пути ({path} + {id}):

const result = await client
  .api('/me/messages/' + req.body.id)
  .select('id,subject,from,toRecipients,ccRecipients,body,sentDateTime,receivedDateTime')
  .get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...