Я новичок в Node.js, и у меня возникли проблемы с поиском пользователя «first name» пользователя facebook с помощью SDK. У меня есть рассказ «приветствие», в котором я хотел бы ответить «Hello {userName}».Node.js Wit.ai SDK - Получить имя пользователя на мессенджере
Я определил имя действия GetUserName, которое связано с «поздравительную» истории:
getUserName({context, entities}) {
if(context.fbid) {
return new Promise(function(resolve, reject) {
if (context.userName) {
return requestUserName(context)
.then((json) => {
context.userName = json.first_name;
return context;
})
.catch((err) => {
console.error('Oops! An error occurred while asking the name of the user: ',
err.stack || err);
});
} else {
return resolve(context);
}
});
} else {
console.error('Oops! Couldn\'t find user for session:', sessionId);
// Giving the wheel back to our bot
return Promise.resolve()
}
}
где requestUserName определяется следующим образом:
const requestUserName = (id) => {
const qs = 'access_token=' + encodeURIComponent(FB_PAGE_TOKEN);
return fetch('https://graph.facebook.com/v2.8/' + id +'?' + qs)
.then(rsp => rsp.json())
.then(json => {
if (json.error && json.error.message) {
throw new Error(json.error.message);
}
return json;
});
};
Даже если действие, кажется, срабатывает, это не работает, и я не знаю причины :( Удивительно, но другое действие срабатывает, но я не знаю, почему, поскольку это действие не связано с историей «приветствия». Я думаю, что я пропустил какую-то ключевую концепцию SDK Node.js.
справка была бы благодарна :)
Привет ... Вы знаете, если есть способ, которым мы можем получить имя пользователя, когда wit.ai является интегрированы через встроенный в НЛП Facebook Messenger? – SamT