/// <summary> /// Notifies any listeners about the beacon event. /// </summary> public void NotifyBeaconEvent(Beacon beacon) { BeaconEvent?.Invoke(this, new BeaconEventArgs() { Beacon = beacon, EventType = BeaconEventType.Unknown }); }
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); }
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 }
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); } }
protected virtual Task OnBeaconAsync(BeaconEvent ev) => Task.CompletedTask;
protected virtual Task HandleBeacon(BeaconEvent ev) { return(Task.CompletedTask); }