Пример #1
0
        /// <summary>根據傳入種類發送訊息</summary>
        /// <param name="ChannelAccessToken"></param>
        /// <param name="type"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        internal static string SendMessageAction(string ChannelAccessToken, PostMessageType type, SendLineMessage message)
        {
            string strUrl = string.Empty;

            switch (type)
            {
            case PostMessageType.Reply:
                strUrl = "https://api.line.me/v2/bot/message/reply";
                break;

            case PostMessageType.Push:
                strUrl = "https://api.line.me/v2/bot/message/push";
                break;

            case PostMessageType.Multicast:
                strUrl = "https://api.line.me/v2/bot/message/multicast";
                break;
            }

            HttpClient client = GetClientDefault(ChannelAccessToken);

            try
            {
                var sJosn   = JsonConvert.SerializeObject(message);
                var content = new StringContent(sJosn, Encoding.UTF8, "application/json");
                var s       = client.PostAsync(strUrl, content).Result.Content.ReadAsStringAsync().Result;
                if (s == "{}")
                {
                    return(string.Empty);
                }
                else
                {
                    LineErrorResponse err = JsonConvert.DeserializeObject <LineErrorResponse>(s);
                    throw new Exception(err.message);
                }
            }
            finally
            {
                client.Dispose();
            }
        }
Пример #2
0
        /// <summary>
        /// 根據傳入種類發送訊息
        /// </summary>
        /// <param name="ChannelAccessToken"></param>
        /// <param name="postMessageType"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        internal static bool SendMessageAction(string ChannelAccessToken, PostMessageType postMessageType, SendMessage message)
        {
            HttpClient client = SetClient(ChannelAccessToken);

            try
            {
                string strUrl = string.Empty;
                switch (postMessageType)
                {
                case PostMessageType.Reply:
                    strUrl = "https://api.line.me/v2/bot/message/reply";
                    break;

                case PostMessageType.Push:
                    strUrl = "https://api.line.me/v2/bot/message/push";
                    break;

                case PostMessageType.Multicast:
                    strUrl = "https://api.line.me/v2/bot/message/multicast";
                    break;
                }
                string sJson   = JsonConvert.SerializeObject(message);
                var    content = new StringContent(sJson, Encoding.UTF8, "application/json");
                var    result  = client.PostAsync(strUrl, content).Result;
                if (result.IsSuccessStatusCode)
                {
                    return(true);
                }

                throw throwLineErrorMsg(result.Content.ReadAsStringAsync().Result);
            }
            finally
            {
                client.Dispose();
            }
        }