0

我们正在使用 TropoSharp 向我的手机发送 SMS 消息。奇怪的是我没有收到任何短信,而是接到了一个电话,电话很短,我无法弄清楚这个人在电话里说什么。

通过查看代码,我们无法找出问题所在:

            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

知道我们在哪里做错了吗?谢谢

4

2 回答 2

0

您的应用程序有两个令牌,一个用于语音,一个用于消息传递。你是用那个发消息的吗?此外,您的应用程序默认未打开出站消息。您必须联系 Tropo 支持以将其打开以进行开发。他们可能会要求您在帐户中存入一些钱来执行此操作,但除非您在开发过程中开始滥用此功能,否则他们不会向您收费。

于 2013-12-06T14:56:42.130 回答
0

您使用的是脚本方法,而不是 WebAPI,对吗?您可以发布您的应用程序正在使用的脚本吗?我的理解是,当您创建会话时,您只是将变量传递给您的脚本。您的脚本可能会完全忽略这些变量,而只是进行语音通话。

我同意你的最后一点。该响应只是告诉您它已成功创建会话。它不返回有关该过程的其他步骤的任何附加信息。

于 2013-12-05T19:54:04.077 回答