Esempio n. 1
0
        /// <summary>
        /// Boundio-CSharpClientを使うためのサンプルコードです。
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            //再生する音声を指定します。
            //この例では、サーバーに音声が登録されていることが前提です。
            CastCollection coll = new CastCollection();
            coll.Add("000001");

            //電話をかけます。
            //CallClient cc = new CallClient("ユーザーシリアルID", "アプリケーションID");
            //var retval = cc.Call("電話番号", coll);
            CallClient cc = new CallClient("aaaabbbbccccdddd", "aaaabbbbccccdddd");
            var retval = cc.Call("09012341234", coll);
        }
 public void AddRange(CastCollection collection)
 {
     this.coll.AddRange(collection.coll);
 }
        /// <summary>
        /// 架電を開始します。
        /// </summary>
        /// <param name="phoneNo">電話番号(ハイフンなしの数字だけ)</param>
        /// <param name="casts">再生させる音声</param>
        /// <returns>通話結果</returns>
        public CallResult Call(string phoneNo, CastCollection casts)
        {
            NameValueCollection data = new NameValueCollection();
            data["key"] = this.ApiKey;
            data["tel_to"] = phoneNo;
            data["cast"] = casts.ToString();

            //リクエスト投げる
            string resjson = null;
            {
                string param = string.Empty;
                foreach (string s in data.Keys)
                {
                    param += String.Format("{0}={1}&", s, data[s]);
                }
                byte[] body = Encoding.ASCII.GetBytes(param);

                // リクエストの作成
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(this.Url);
                req.Method = "POST";
                req.ContentType = "application/x-www-form-urlencoded";
                req.ContentLength = body.Length;

                // ポスト・データの書き込み
                using (Stream reqStream = req.GetRequestStream())
                {
                    reqStream.Write(body, 0, body.Length);
                }

                // レスポンスの取得と読み込み
                WebResponse response = req.GetResponse();
                using (Stream resStream = response.GetResponseStream())
                {
                    using (StreamReader sr = new StreamReader(resStream, Encoding.UTF8))
                    {
                        resjson = sr.ReadToEnd();
                    }
                }

            }

            //戻ってきたJSONを解釈
            CallResult retval = null;
            using (MemoryStream st = new MemoryStream(Encoding.UTF8.GetBytes(resjson)))
            {
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(CallResult));
                retval = (CallResult)serializer.ReadObject(st);
            }

            return retval;
        }