我正在尝试将Twilio与我的VS2015站点集成,我明白Twilio上给出的示例是针对一个直接的MVC项目,并且有一个AccountController.cs,其中代码块(步骤5/6){{3 }}
//
// POST: /Account/SendCode
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> SendCode(SendCodeViewModel model)
{
if (!ModelState.IsValid)
{
return View();
}
// Generate the token and send it
if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider))
{
return View("Error");
}
return RedirectToAction("VerifyCode",
new { Provider = model.SelectedProvider,
ReturnUrl = model.ReturnUrl,
RememberMe = model.RememberMe });
}
我的项目没有这样的控制器,我在执行此
时遇到错误private readonly ITwilioMessageSender _messageSender;
public SmsService() : this(new TwilioMessageSender()) { }
public SmsService(ITwilioMessageSender messageSender)
{
_messageSender = messageSender;
}
CS0051可访问性不一致:参数类型&#39; ITwilioMessageSender&#39;比方法&#39; SmsService.SmsService(ITwilioMessageSender)&#39;
错误指向:
public SmsService(ITwilioMessageSender messageSender)
{
_messageSender = messageSender;
}
总之,我无法解决1个错误,1个问题,我不知道这个步骤5/6代码块需要去哪里。如果这是一个需要进入的webform,默认情况下它没有被添加到这个项目中,但我不知道。如果有人更了解这一点,我真的很感激一些帮助。
答案 0 :(得分:0)
我最后关注this示例,但您需要下载旧版Twilio.4.7.2,因为较新版本不支持client.SendMessage()方法。 VS2015还没有完整的代码示例,但它适用于所有新功能。老实说,我试图让新版本工作,但事实并非如此。这个旧版本确实有效,我收到了来自我网站的短信。 最佳做法是在web.config中添加您的帐户信息
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
...
<add key="ACCOUNT_SID" value="<YOUR SID>" />
<add key="AUTH_TOKEN" value="<YOUR LIVE TOKEN>"/>
<add key="CLIENT_PHONE" value="<YOUR ACCNT PHONE>" />
</appSettings>
在App_Start&gt;中引用您的帐户变量IdentityConfig.cs。找到类SmsService并在Task SendAsynch
下找到public class SmsService : IIdentityMessageService
{
public Task SendAsync(IdentityMessage message)
{
// add your Twilio code here
string ACCOUNT_SID = ConfigurationManager.AppSettings["ACCOUNT_SID"];
string AUTH_TOKEN = ConfigurationManager.AppSettings["AUTH_TOKEN"];
string CLIENT_PHONE = ConfigurationManager.AppSettings["CLIENT_PHONE"];
TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);
client.SendMessage(CLIENT_PHONE, message.Destination, message.Body);
return Task.FromResult(0);
}
}
当您注册时,Twillio会为您提供两个令牌...并且不会告诉您其中一个令牌只能在Twilio帐户REST API控制台中使用。试用帐户只能向您用于注册的电话号码发送短信。因此,如果您在测试时没有收到该电话号码的短信,请换掉您的令牌。
使用身份模型框架对VS2015默认网站应用程序进行了测试。我当然希望这可以帮助别人,所以他们不需要花费3小时在Twilio和STFW上浪费时间。