示例#1
0
 /// <summary>
 /// Notifies any listeners about the beacon event.
 /// </summary>
 public void NotifyBeaconEvent(Beacon beacon)
 {
     BeaconEvent?.Invoke(this, new BeaconEventArgs()
     {
         Beacon = beacon, EventType = BeaconEventType.Unknown
     });
 }
示例#2
0
 public void NotifyBeaconEvent(Beacon beacon, BeaconEventType eventType)
 {
     BeaconEvent?.Invoke(this, new BeaconEventArgs()
     {
         Beacon = beacon, EventType = eventType
     });
 }
        /// <summary>
        /// Handles beacon event
        /// </summary>
        /// <param name="ev">BeaconEvent</param>
        /// <param name="userId">UserId</param>
        /// <returns>IMessageActivity</returns>
        private IMessageActivity HandleBeacon(BeaconEvent ev, string userId)
        {
            var activity = GetActivityBase(userId);

            activity.ChannelData = ev;
            activity.Text        = "beacon";
            return(activity);
        }
示例#4
0
 protected override async Task OnBeaconAsync(BeaconEvent ev)
 {
     //ビーコンイベント
     //Beacon event
     //リプライ可能 Replyable
     //https://developers.line.biz/ja/reference/messaging-api/#beacon-event
     //https://developers.line.biz/en/reference/messaging-api/#beacon-event
 }
示例#5
0
        protected override async Task OnBeaconAsync(BeaconEvent ev)
        {
            var message = "";

            switch (ev.Beacon.Type)
            {
            case BeaconType.Enter:
                message = "You entered the beacon area!";
                break;

            case BeaconType.Leave:
                message = "You leaved the beacon area!";
                break;

            case BeaconType.Banner:
                message = "You tapped the beacon banner!";
                break;
            }

            await messagingClient.ReplyMessageAsync(ev.ReplyToken, $"{message}(Dm:{ev.Beacon.Dm}, Hwid:{ev.Beacon.Hwid})");
        }
        //自訂解析JSON傳回物件的邏輯
        public override object ReadJson(JsonReader reader, Type objectType,
                                        object existingValue, JsonSerializer serializer)
        {
            JObject jo = JObject.Load(reader);
            //先取得JobType,由其決定建立物件
            string type = jo["type"].ToString();

            switch (type)
            {
            case Event.MESSAGE_TYPE:
                reader = jo["message"].CreateReader();
                MessageConverter messageConverter = new MessageConverter();
                object           message          = messageConverter.ReadJson(reader, typeof(Message), existingValue, serializer);

                MessageEvent mEv = new MessageEvent();
                serializer.Populate(jo.CreateReader(), mEv);
                mEv.Message = (Message)message;
                return(mEv);

            case Event.UNFOLLOW_TYPE:
            case Event.LEAVE_TYPE:
                Event ufEv = new Event(type);
                serializer.Populate(jo.CreateReader(), ufEv);
                return(ufEv);

            case Event.POST_BACK_TYPE:
                PostbackEvent pbEv = new PostbackEvent();
                serializer.Populate(jo.CreateReader(), pbEv);
                return(pbEv);

            case Event.MEMBER_LEAVE_TYPE:
                MemberLeaveEvent mlEv = new MemberLeaveEvent();
                serializer.Populate(jo.CreateReader(), mlEv);
                return(mlEv);

            case Event.MEMBER_JOIN_TYPE:
                MemberJoinEvent mjEv = new MemberJoinEvent();
                serializer.Populate(jo.CreateReader(), mjEv);
                return(mjEv);

            case Event.JOIN_TYPE:
            case Event.FOLLOW_TYPE:
                FollowJoinEvent fEv = new FollowJoinEvent();
                serializer.Populate(jo.CreateReader(), fEv);
                return(fEv);

            case Event.DEVICE_UN_LINK_TYPE:
                DeviceULinkEvent dulEv = new DeviceULinkEvent();
                serializer.Populate(jo.CreateReader(), dulEv);
                return(dulEv);

            case Event.BEACON_TYPE:
                BeaconEvent bEv = new BeaconEvent();
                serializer.Populate(jo.CreateReader(), bEv);
                return(bEv);

            case Event.ACCOUNT_LINK_TYPE:
                AccountLinkEvent alEv = new AccountLinkEvent();
                serializer.Populate(jo.CreateReader(), alEv);
                return(alEv);

            default:
                throw new ApplicationException("Unsupported type: " + type);
            }
        }
示例#7
0
 protected virtual Task OnBeaconAsync(BeaconEvent ev) => Task.CompletedTask;
示例#8
0
 protected virtual Task HandleBeacon(BeaconEvent ev)
 {
     return(Task.CompletedTask);
 }