Я пытаюсь использовать платформу ботов MS, подключенную к Facebook Messenger, для создания простой демонстрации. В демонстрации будет предопределенный список филиалов компании (например, координаты), и когда пользователь отправит свое местоположение боту (с помощью функции «Поделиться местоположением» в мессенджере FB), он вызовет API Карт Google для измерения расстояния до всех филиалов. и найди ближайший.
Однако я не могу получить местоположение, отправленное пользователем в виде вложения:
//if there is an attachment, assume it's a location
//and print out the attachments count and other info;
if (activity.Attachments != null)
{
int attachmentsCount = activity.Attachments.Count;
await SendReplyToUser(activity.Attachments.Count + " attachments.", activity);
if (attachmentsCount > 0)
{
await SendReplyToUser("I got your attachment! (" + attachmentsCount + ") " +
activity.Attachments[0].Content + "\n\n" + activity.Attachments[0].ContentType + "\n\n" +
activity.Attachments[0].ContentUrl + "\n\n" +
activity.Attachments[0].Name
, activity);
}
return Request.CreateResponse(HttpStatusCode.OK);
}
//otherwise continue processing the user's text message
Однако количество вложений оказывается равным нулю, когда я делюсь местоположением. Если я отправлю что-нибудь еще, например картинку, то бот успешно получит это, но не местоположение. Я все еще могу понять, что пользователь отправил вложение (в противном случае activity.Attachments
имеет значение null, если это просто текстовое сообщение), но счетчик вложений равен нулю, и я ничего не нахожу в activity.Attachments[0]
.
Я делаю что-то не так или вложение, содержащее местоположение, намеренно заблокировано фреймворком Facebook или MS?