2016-05-03 4 views
1

Не уверен, что я что-то упустил, но я настраиваю новую функцию Facebook Messenger для работы на существующей платформе Skype Bot, и все работает отлично.MS Bot Framework и пользователь FB Messenger

Единственная проблема, с которой я сталкиваюсь, заключается в том, что я не могу получить имя пользователя, отправляющего сообщение моему боту. Я пробовал поля From (ID, Адрес, Имя и т. Д.), А также поля участника, но все они возвращают число.

Описание происходящего.

Пользователь регистрируется на веб-сайте и заполняет их данные и предоставляет свои уникальные идентификаторы для Skype и Facebook, которые сохраняются на моем сервере. После того, как они сделаны, они могут отправлять сообщения через фреймворк бота, и я подбираю, кто отправил сообщение и отвечал с деталями, специфичными для них.

Поэтому мне нужно сопоставить пользователя facebook с моим бэкэнд-пользователем.

Я предполагал, что имя пользователя facebook будет отправлено, поскольку большинство людей знает, что у них есть.

Кто-нибудь знает, где я могу это получить?

Thanks

+0

https://developers.facebook.com/docs/messenger-platform/send-api-reference#user_profile_request – CBroe

+0

Thats для новых Facebook Messenger ботов. Я ищу Facebook Messenger для Microsoft Bot Framework [link] (https://dev.botframework.com/) – Jeffrey

ответ

0

Я взглянул на текущий код; прямо сейчас сообщение, которое отправляет нам Facebook, не включает имя пользователя, а только идентификатор пользователя Facebook, поэтому вы даете нам то, что у нас есть (см. ChannelData в объекте Message).

Существует API профиля, который мы могли бы назвать дополнительной поездкой туда и обратно; но на данный момент мы этого не делаем.

+0

Спасибо за информацию. Любая идея, когда/если она будет реализована? Можно ли использовать идентификатор, возвращенный с помощью http://graph.facebook.com/UserID api, чтобы получить информацию? – Jeffrey

+0

При дальнейшем осмотре он, кажется, не является идентификатором пользователя facebook, который отправляется обратно. Я не могу отобразить число, отправленное обратно на любую из моих деталей. – Jeffrey

0

Для каждого диалогового окна есть объект session. Вы можете найти понятное имя пользователя под session.message.participants, .to или .from

http://docs.botframework.com/sdkreference/nodejs/interfaces/_botbuilder_d_.imessage.html

Если, как вы сказали, все, что вы получаете это «номер». Это число должно быть идентификатором отправителя. Вы также должны увидеть тот же номер в channelData.sender.id. Попробуйте сделать второй запрос в facebook, чтобы получить информацию о пользователе. Я пробовал, и он работает.

https://developers.facebook.com/docs/messenger-platform/implementation#user_profile_api

Смежные вопросы