def handle_location_message(event): line_bot_api.reply_message( event.reply_token, LocationSendMessage( title=event.message.title, address=event.message.address, latitude=event.message.latitude, longitude=event.message.longitude ) )
def isTravel(input_text, token): (loc_1, loc_2) = allSight(input_text) if loc_2: recommand = random.choice(loc_2) message = [ TextSendMessage(text="為您隨機推薦景點"), LocationSendMessage( title=recommand[0], address=recommand[2], latitude=recommand[1][0], longitude=recommand[1][1], ), ] line_bot_api.reply_message(token, message) return True elif loc_1: recommand = random.choice(loc_1) message = [ TextSendMessage(text="為您隨機推薦景點"), LocationSendMessage( title=recommand[0], address=recommand[2], latitude=recommand[1][0], longitude=recommand[1][1], ), ] line_bot_api.reply_message(token, message) return True elif "景點" in input_text: chose = TextSendMessage( text="哪邊的景點呢?", quick_reply=QuickReply( items=[ QuickReplyButton(action=MessageAction(label="北部", text="@北")), QuickReplyButton(action=MessageAction(label="中部", text="@中")), QuickReplyButton(action=MessageAction(label="南部", text="@南")), QuickReplyButton(action=MessageAction(label="東部", text="@東")), QuickReplyButton(action=MessageAction(label="離島", text="@離島")), ] ), ) line_bot_api.reply_message(token, chose) return isTravel_2(input_text, token) return False
def test_location_message(self): arg = { 'title': 'my location', 'address': '〒150-0002 東京都渋谷区渋谷2丁目21−1', 'latitude': 35.65910807942215, 'longitude': 139.70372892916203 } self.assertEqual(self.serialize_as_dict(arg, type=self.LOCATION), LocationSendMessage(**arg).as_json_dict())
def push_location(userid, title="", address="", latitude=0.0, longtitude=0.0): try: message = LocationSendMessage(title=title, address=address, latitude=latitude, longtitude=longtitude) LINE_BOT_API.push_message(userid, message) except Exception as e: getException(e)
def sendPosition(event): try: message = [ LocationSendMessage(title='桃園市大溪區',address='335桃園市大溪區',latitude='24.8709613',longitude='121.2306069'), TextSendMessage(text="大溪區爲中華民國桃園市的一個市轄區,境內有大漢溪,因而得名。大溪區原為復興區的木材輸出門戶,以大漢溪爲河運管道。雖然現在河運已經不再,但當地昔日的渡船頭仍然保存,大溪爲北橫公路的入口端,因擁有豐富的觀光資源,桃園市政府持續推展生態休閒遊憩東都心之重點發展區。") ] line_bot_api.reply_message(event.reply_token,message) except: line_bot_api.reply_message(event.reply_token,TextSendMessage(text = "發生錯誤!"))
def handle_location(event): # ユーザが選択した災害の種類(辞書からkeyを取り出す) which_disaster_key = "" for key, value in disaster_dict.items(): if value == which_disaster_value: which_disaster_key = key # 受信した位置情報(緯度・経度)から±0.05度(半径5km程度?)以内の避難場所を抽出 from_lat = event.message.latitude - 0.05 to_lat = event.message.latitude + 0.05 from_lon = event.message.longitude - 0.05 to_lon = event.message.longitude + 0.05 df_near = df.query(f"{which_disaster_key} == '◎' & \ lat > {from_lat} & lat < {to_lat} & \ lon > {from_lon} & lon < {to_lon}") min_distance = None min_row = None # 一番近い避難場所を検索 for index, row in df_near.iterrows(): shelter_lat = row["lat"] shelter_lon = row["lon"] distance = calc_distance(event.message.latitude, event.message.longitude, shelter_lat, shelter_lon) if min_distance is None or distance < min_distance: min_distance = distance min_row = row # 該当する避難場所がなかった場合 if min_distance == None: line_bot_api.reply_message( event.reply_token, TextSendMessage( text="{}\n{}".format("この近くには、その災害の避難場所は登録されてないみたい…", "詳しく確認したい場合は、自治体のサイトなどを見てみてね"))) # 該当する避難場所があった場合 else: message = "{}\n「{}」\n{}\n".format("いちばん近い避難場所は", min_row["name"], "だよ" + chr(0x100001)) message += format_disaster_info(min_row) line_bot_api.reply_message(event.reply_token, [ TextSendMessage(text=message), LocationSendMessage( title=f"{min_row['name']}\n(距離:{min_distance}m)", address=min_row['addr'], latitude=min_row['lat'], longitude=min_row['lon']) ])
def sendPosition(event): try: message = LocationSendMessage(title='國立金門大學', address='金門縣金寧鄉大學路1號', latitude=24.44816, longitude=118.32252) line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token, TextSendMessage(text='發生錯誤'))
def handle_location(event): msg = "latitude: {} longitude: {}".format(event.message.latitude, event.message.longitude) line_bot_api.reply_message(event.reply_token, [ LocationSendMessage(title=event.message.title, address=event.message.address, latitude=event.message.latitude, longitude=event.message.longitude), TextSendMessage(text=msg) ])
def handel_location(event): print("event.reply_token:", event.reply_token) print("event.message.type:", event.message.type) line_bot_api.reply_message( event.reply_token, LocationSendMessage(title=event.message.title, address=event.message.address, latitude=event.message.latitude, longitude=event.message.longitude)) return 0
def reply_location(event, title="", address="", latitude=0.0, longtitude=0.0): try: message = LocationSendMessage(title=title, address=address, latitude=latitude, longtitude=longtitude) token = event.reply_token LINE_BOT_API.push_message(token, message) except Exception as e: getException(e)
def sendResPosition(event): #傳送餐廳位置 #try: restaurants = restaurant.objects.all() index = random.randint(0, len(restaurants) - 1) message = LocationSendMessage( title=restaurants[index].cTitle, address=restaurants[index].cAddr, latitude=float(restaurants[index].cLatitude), #緯度 longitude=float(restaurants[index].cLongitude)) line_bot_api.reply_message(event.reply_token, message)
def handle_postback(event): data = parse_qs(event.postback.data) #print("data:"+data) line_bot_api.reply_message( event.reply_token, LocationSendMessage( title=data['title'][0], address=data['address'][0], latitude=data['lat'][0], longitude=data['lng'][0] ) )
def send(self, id, text, sticker=None, location=None): msg = [TextSendMessage(text=text)] if location is not None: msg.append(LocationSendMessage( latitude=location['lat'], longitude=location['lng'] )) if sticker is not None: msg.append(StickerSendMessage(package_id=3, sticker_id=sticker)) self.api.push_message(id, msg)
def sendPosition(event): #傳送位置 try: message = LocationSendMessage( title='101大樓', address='台北市信義路五段7號', latitude=25.034207, #緯度 longitude=121.564590 #經度 ) line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token,TextSendMessage(text='發生錯誤!'))
def create( self, quick_reply: Optional[QuickReply] = None, sender: Optional[Sender] = None ) -> LocationSendMessage: return LocationSendMessage( title=self.title, address=self.address, latitude=self.latitude, longitude=self.longitude, quick_reply=quick_reply, sender=sender, )
def sendMap(event): try: message = LocationSendMessage( title='國立臺北科技大學', address='10608台北市大安區忠孝東路三段1號', latitude=25.04353847631958, #緯度 longitude=121.53769576931987 #經度25.04353847631958, 121.53769576931987 ) line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token,TextSendMessage(text='發生錯誤!')) #傳送位置
def handle_message(event): event_mst={"arrive1":"event1","arrive2":"event2"} pos={ "event1":("鶴ヶ城","〒965-0873福島県会津若松市追手町1-1",37.48772, 139.929794,"馬刺し一貫サービス"), "event2":("会津若松市役所","〒965-0035",37.48772,139.929794,"飛露喜プレゼント")} if event.message.text in pos: line_bot_api.reply_message( event.reply_token, [ LocationSendMessage( title = pos[event.message.text][0], address = pos[event.message.text][1], latitude = pos[event.message.text][2], longitude = pos[event.message.text][3] ), TextSendMessage(text=pos[event.message.text][0]+"を訪れた方へ"+"先着"+str(r.get(event.message.text))+"名様に"+pos[event.message.text][4]+"!!") ] ) message1="合言葉は「ならぬことはならぬ」です。" message2="クイズ:鶴ヶ城(会津城)の旧称はなんでしょう?" dist={"arrive1":("桜鍋 吉し多","〒965-0035福島県会津若松市東栄町5-14",37.494102,139.929993,message1,),"arrive2":("植木屋商店","〒965-0035福島県会津若松市馬場町1-35",37.497540,139.931335,message2)} eventtext=event.message.text if event.message.text in dist: all_num=r.decr(event_mst[event.message.text]) #all_num=r.get(event_mst[event.message.text]).decode('utf-8') line_bot_api.reply_message( event.reply_token, [ LocationSendMessage( title = dist[event.message.text][0], address = dist[event.message.text][1], latitude = dist[event.message.text][2], longitude = dist[event.message.text][3] ), TextSendMessage(text=dist[eventtext][4]+" 締切まであと"+str(all_num)+"人です。") ] )
def handle_location_message(event): msg_track.log_message_activity( line_api_proc.source_channel_id(event.source), db.msg_event_type.recv_txt) return api_reply( event.reply_token, LocationSendMessage(title=event.message.title, address=event.message.address, latitude=event.message.latitude, longitude=event.message.longitude), event.source)
def callback(): # get X-Line-Signature header value signature = request.headers['X-Line-Signature'] # get request body as text body = request.get_data(as_text=True) json_body = ast.literal_eval(body) print(json_body) user_id = json_body['events'][0]['source']['userId'] display_name = line_bot_api.get_profile(user_id).display_name message = json_body['events'][0]['message'] address = message.get('address') lat = message.get('latitude') lon = message.get('longitude') reply_token = json_body['events'][0]['replyToken'] # print(display_name, address, lat, lon) app.logger.info("Request body: " + body) # handle webhook body if lat and lon: nerest_vm_info = gogoro_scraper.vm_finder(gogoro_scraper.gogoro_gf_id, lat, lon) if nerest_vm_info: # print(nerest_vm_info) nerest_vm_name = nerest_vm_info[0] nerest_vm_add = nerest_vm_info[1] nerest_vm_lat = nerest_vm_info[2] nerest_vm_lon = nerest_vm_info[3] nerest_vm_eta = nerest_vm_info[4] nerest_vm_dot = nerest_vm_info[5] nerest_vm_maneuvers = nerest_vm_info[6] body = ( TextSendMessage( text='親愛的{}:已為您找到最接近的GoStation為「{}」,車程約{}。'.format( display_name, nerest_vm_name, nerest_vm_eta)), LocationSendMessage(title=nerest_vm_name, address=nerest_vm_add, latitude=nerest_vm_lat, longitude=nerest_vm_lon), TextSendMessage( text='路徑規劃:https://wego.here.com/directions/mix/{},{}/{},{}' .format(lat, lon, nerest_vm_lat, nerest_vm_lon))) line_bot_api.reply_message(reply_token, body) else: line_bot_api.reply_message( reply_token, TextSendMessage( text='很抱歉,找不到附近的GoStation或您不在GoStation的服務範圍內。')) else: line_bot_api.reply_message( reply_token, TextSendMessage(text='請傳送「位置資訊」來查詢最近的GoStation,謝謝!')) return 'ok'
def on_enter_ask_hospital_map(self, event): address = parse_qs(event.postback.data)['hosptial_address'][0] hosp = hospital.models.Hospital.objects.using('tainan').get( address=address) self.bot_client.reply_message( event, messages=LocationSendMessage(title=self.render_text( 'nearby_hospital/map_msg.j2', hosp.name), address=hosp.address, latitude=hosp.lat, longitude=hosp.lng)) self.finish_ans()
def handle_postback(event): if event.postback.data == 'Intro-DS': line_bot_api.reply_message(event.reply_token, TextSendMessage(text=Intro.ds)) elif event.postback.data == 'Intro-MDA': line_bot_api.reply_message(event.reply_token, TextSendMessage(text=Intro.mda)) elif event.postback.data == 'Intro-WeatherMood': line_bot_api.reply_message(event.reply_token, TextSendMessage(text=Intro.wm)) elif event.postback.data == 'Intro-Doodle': line_bot_api.reply_message(event.reply_token, TextSendMessage(text=Intro.dj)) elif event.postback.data == 'Triats-Resp': line_bot_api.reply_message(event.reply_token, TextSendMessage(text=Intro.traits_resp)) elif event.postback.data == 'Triats-Open': line_bot_api.reply_message(event.reply_token, TextSendMessage(text=Intro.traits_open)) elif event.postback.data == 'More-Info': line_bot_api.reply_message( event.reply_token, TextSendMessage(text='選擇想了解的項目', quick_reply=quick_reply_tepmplate)) elif event.postback.data == 'Music': line_bot_api.reply_message(event.reply_token, TextSendMessage(text="Chvrches-Forever")) image_carousel_template = ImageCarouselTemplate(columns=[ ImageCarouselColumn( image_url='https://i.imgur.com/7w0cpRn.jpg', action=URIAction( label='Listen!', uri='https://www.youtube.com/watch?v=CRDruiv08_4')), ]) template_message = TemplateSendMessage( alt_text='Image-music', template=image_carousel_template) line_bot_api.push_message(event.source.user_id, template_message) time.sleep(1) line_bot_api.push_message( event.source.user_id, TextSendMessage(text="A song that get you out of depression.")) elif event.postback.data == 'Location': line_bot_api.reply_message( event.reply_token, LocationSendMessage(title='清華大學 梅園', address='新竹市東區光復路二段101號', latitude=24.7928700, longitude=120.9908193)) elif event.postback.data == 'Poke': line_bot_api.reply_message(event.reply_token, TextSendMessage(text=Intro.poke))
def handle_location_message(event): if isinstance(event.source, SourceUser): line_bot_api.reply_message( event.reply_token, LocationSendMessage(title='Location', address=event.message.address, latitude=event.message.latitude, longitude=event.message.longitude)) elif isinstance(event.source, SourceGroup): pass elif isinstance(event.source, SourceRoom): pass
def on_enter_ask_hospital_map(self, event): address = parse_qs(event.postback.data)['hosptial_address'][0] hosp = hospital.models.Hospital.objects.using('tainan').get( address=address) self.line_bot_api.reply_message( event.reply_token, messages=LocationSendMessage( title="地圖 - {name}".format(name=hosp.name), address=hosp.address, latitude=hosp.lat, longitude=hosp.lng)) self.finish_ans()
def handle_message(event): if event.message.text.isdigit(): line_bot_api.reply_message(event.reply_token, [ LocationSendMessage(title=pins[int(event.message.text)][2], address='東京都新宿区', latitude=pins[int(event.message.text)][0], longitude=pins[int(event.message.text)][1]) ]) else: line_bot_api.reply_message(event.reply_token, [ TextSendMessage(text='位置情報を送ると近くで終電まで空いている駅一覧を教えるよ '), TextSendMessage(text='line://nv/location'), ])
def handle_location_message(event): lat = event.message.latitude lng = event.message.longitude address = event.message.address title = event.message.title print("Lat : {}".format(lat)) line_bot_api.reply_message( event.reply_token, LocationSendMessage(title=title, address=address, latitude=latitude, longitude=longitude))
def handle_location_message(event): """ LocationMessage handler """ user_id = event.source.user_id address = event.message.address lat = event.message.latitude lng = event.message.longitude line_bot_api.reply_message( event.reply_token, LocationSendMessage(title="お店の場所", address=address, latitude=lat, longitude=lng))
def handle_postback(event): if event.postback.data.startswith('address:'): data = event.postback.data.split(':')[1].split(',') lat = data[0] lon = data[1] address = data[2] line_bot_api.reply_message( event.reply_token, LocationSendMessage(title=data[2], address=data[3], latitude=lat, longitude=lon))
def sendPosition(event, backdata): #傳送位置 try: message = LocationSendMessage( alt_text='位置', title='資策會', address='320桃園市中壢區中大路300號', latitude=24.9664599, #緯度 longitude=121.1889883 #經度 ) line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token, TextSendMessage(text='發生錯誤!'))
def handle_location_message(event): print("lokasi") print(event.message) if event.message.title is None: title = "Lokasi" else: title = event.message.title line_bot_api.reply_message( event.reply_token, LocationSendMessage(title=title, address=event.message.address[:100], latitude=event.message.latitude, longitude=event.message.longitude))
def handle_beacon(event): if event.beacon.type == "enter": if not get_user_visit(event.source.user_id): register_user_visit(event.source.user_id) set_user_coupon_status(event.source.user_id, True) line_bot_api.reply_message(event.reply_token, [ TextSendMessage(text="ご来店ありがとうございます"), LocationSendMessage(title='XXカフェXX店', address='東京都新宿区111-1111', latitude='35.688772', longitude='139.701840'), TextSendMessage(text="クーポンです"), TextSendMessage(text="ご注意リンクはお店の方に押して頂きますようお願いいたします"), TextSendMessage(text='https://' + request.host + '/coupon'), ])