Я не могу получить входящее сообщение, и мой ответ не возвращается этому человеку
У меня есть следующие настройки в SmsController
using System;
using System.Net.Mail;
using System.Configuration;
using System.Web.Mvc;
using Twilio;
using Twilio.Rest.Api.V2010.Account;
using Twilio.Types;
using Twilio.AspNet.Common;
using Twilio.TwiML;
using Twilio.AspNet.Mvc;
using Chat.Models;
public class SmsController : TwilioController
{
[HttpPost]
public TwiMLResult ReceiveSms(SmsRequest incomingMessage)
{
try
{
Applicant applicant = new Applicant();
string Phone = incomingMessage.From;
string UserID = applicant.GetUserIDByTelephone(Phone);
string MgrName = applicant.GetMessageSender(UserID);
string ApplicantName = applicant.GetName(UserID);
//Get the Message and the MessageID
string Body = incomingMessage.Body;
string MessageSid = incomingMessage.SmsSid;
//Save incoming message in the database
applicant.IncomingMessage(UserID, Body, MessageSid);
//Send applicant a message acknowledging that the text was received.
var response = new MessagingResponse();
response.Message("Thank you for your response. We will respond to your message shortly.");
//Get information on the manager
Manager manager = new Manager();
string MgrID = manager.GetMgrID(MgrName);
string email = manager.GetMgrEmail(MgrID);
bool notify = manager.Notify(MgrID);
//Send the email notification if manager set to receive notification.
if (notify)
{
SendEmail(email, ApplicantName, Body);
}
return TwiML(response);
}
catch (Exception ex)
{
Errors.ErrorOccured(ex,"message sent = " + incomingMessage.Body);
MessagingResponse messagingResponse = new MessagingResponse();
messagingResponse.Message("oops.. An error has occured.");
return TwiML(messagingResponse);
}
}
}
У меня установлен Webhook в Twilio
https://www.myUrl/admin/applicantmanagement/Sms/ReceiveSms
Выше приведен адрес этого конкретного приложения MVC.
Но я не получаю ответа от пользователя
Именно тогда я добавил try catch, так как эта строка настроена на отправку мне электронного письма о любых ошибках, возникающих в модели или контроллере.
Errors.ErrorOccured(ex,"message sent = " + incomingMessage.Body);
Документация Twilio не показывает это так, но у меня также есть SendSms ActionResult в том же контроллере, может ли это быть моей проблемой?
Я не прокладываю маршруты. Я использую файл RouteConfig.cs по умолчанию.
Я так понимаю, при отображении маршрута «из коробки» будет использоваться следующая схема маршрута: /[контроллер]/[действие]/[необязательный-id]. Идентификационная часть не является обязательной. Итак, для вашего контроллера путь должен быть /Sms/ReceiveSms. Попробуйте изменить URL веб-перехватчика на мой URL/Sms/ReceiveSms.
Вы были близки. у меня был неверный адрес
Рад, что ты это понял! Удачи и дайте нам знать, если вам что-нибудь понадобится ?
У меня был неверный URL. Приложение было помещено в виртуальный каталог с именем sms, поэтому фактический веб-перехватчик должен был сработать.
https://www.myUrl/admin/applicantmanagement/sms/Sms/ReceiveSms
Здравствуйте, боюсь, мне понадобится дополнительная информация, чтобы помочь вам. Можете ли вы поделиться кодом, в котором вы сопоставляете свои маршруты MVC, обычно это метод с именем
RegisterRoutes
? Какую ошибку вы видите? Если нет, можете ли вы записывать ошибки в файл вместо электронной почты и делиться журналом ошибок? Если у вас есть другой соответствующий код, которым вы могли бы поделиться, это было бы полезно! Не стесняйтесь делиться ссылкой на репозиторий GitHub или чем-то подобным.