我们正在使用TropoSharp向手机发送短信。奇怪的是,我没有收到任何短信,而是接到一个电话,而且很短,我无法弄清楚这个人通过电话说话的内容。
通过查看代码,我们无法弄清楚出了什么问题:
string voiceToken = "xxx";
string messagingToken = "xxx";
IDictionary<string, string> parameters = new Dictionary<String, String>();
parameters.Add("sendToNumber", "xxx");
parameters.Add("sendFromNumber", "+1 201-xxx-04xx");
string channel = Channel.Text;
parameters.Add("channel", channel);
string network = Network.SMS;
parameters.Add("network", network);
parameters.Add("msg", HttpUtility.UrlEncode("This is a test message from C#."));
Tropo tropo = new Tropo();
XmlDocument doc = new XmlDocument();
string token = channel == Channel.Text ? messagingToken : voiceToken;
doc.Load(tropo.CreateSession(token, parameters));
Console.WriteLine("Result: " + doc.SelectSingleNode("session/success").InnerText.ToUpper());
Console.WriteLine("Token: " + doc.SelectSingleNode("session/token").InnerText);
Console.ReadKey();
这是http请求(删除了一些敏感信息)
GET http://api.tropo.com/1.0/sessions?action=create&token=xxxxx&sendToNumber=xxx&sendFromNumber=+1%20201-xxx-xxxx&channel=TEXT&network=SMS&msg=This+is+a+test+message+from+C%23.& HTTP/1.1
Host: api.tropo.com
Connection: Keep-Alive
这是响应(我猜它只表示请求提交成功):
<session><success>true</success><token>xxxx</token><id>5c994e73ab85ff47fd1af4ffd4002e00
知道我们在哪里做错了吗?感谢
答案 0 :(得分:0)
您使用的是脚本方法,而不是WebAPI,对吗?你可以发布你的应用程序正在使用的脚本吗?我的理解是,当您创建会话时,您只需将变量传递给您的脚本。您的脚本可能完全忽略这些变量,只是进行语音呼叫。
我同意你的最后一点。该响应只是告诉您它成功创建了会话。它不会返回有关该过程其他步骤的任何其他信息。
答案 1 :(得分:0)
您的应用程序有两个令牌,一个用于语音,一个用于消息传递。您是否正在使用该消息传递?此外,对于您的应用程序,默认情况下不启用出站消息传递。您必须联系Tropo支持才能将其打开以进行开发。他们可能会要求您在帐户中存入一些钱,但除非您在开发过程中开始滥用此功能,否则他们不会向您收费。