def getCarouselColumn(name, minkabu, ipokiso): urlCols = [ CarouselColumn( thumbnail_image_url= 'https://assets.minkabu.jp/images/icon/home-icon.png', title='みんかぶ', text='「みんかぶ」に載っている' + name + 'の情報です。', actions=[URITemplateAction( uri=minkabu, label='みんかぶをみる', )]), CarouselColumn( thumbnail_image_url= 'https://www.ipokiso.com/common/images/apple-touch-icon-precomposed.png', title='やさしいIPO株のはじめ方', text='「やさしいIPO株のはじめ方」に載っている' + name + 'の情報です。', actions=[ URITemplateAction( uri=ipokiso, label='やさしいIPO株のはじめ方をみる', ) ]), ] return urlCols
def send_S(reply_token, text): line_bot_api = LineBotApi(channel_access_token) message = TemplateSendMessage( alt_text='宋楚瑜候選人', template=ButtonsTemplate( thumbnail_image_url= 'https://img5.cna.com.tw/www/WebPhotos/1024/20191203/1024x768_20191203000002.jpg', title='Menu', text='Please select', actions=[ URITemplateAction( label='他是誰', uri= 'https://zh.wikipedia.org/wiki/%E5%AE%8B%E6%A5%9A%E7%91%9C' ), URITemplateAction(label='他做了什麼', uri='https://www.facebook.com/soong2016/'), URITemplateAction( label='我想支持他', uri= 'https://www.pfp.org.tw:8443/TW/AboutUs04/ugC_Company.asp?hidSinglePageID=5' ), MessageTemplateAction(label='想看看其他人', text='想看看其他人') ])) line_bot_api.reply_message(reply_token, message) return "OK"
def sendCarousel(event): #轉盤樣板 try: message = TemplateSendMessage( alt_text='其他', template=CarouselTemplate( columns=[ CarouselColumn( thumbnail_image_url='https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcT4NQBoplbhOoo3bc_Zgj37mraOw88ddrWP7LTZfpfnY7FcDr5m&usqp=CAU', title=' ', text='其他資訊', actions=[ URITemplateAction( label='洗錢型態例子', uri='https://www.mjib.gov.tw/EditPage?PageID=564dcbaf-1d4e-45a9-bf1e-a26ea488bd76' ), MessageTemplateAction( label='國際防制洗錢標準', text='1.處罰洗錢及資恐行為2.沒收不法所得及進行目標制裁3.國際合作4.建立防治機制' ), URITemplateAction( label='最新資訊', uri='https://www.amlo.moj.gov.tw/1461/1467/Lpsimplelist' ), ] ), ] ) ) line_bot_api.reply_message(event.reply_token,message) except: line_bot_api.reply_message(event.reply_token,TextSendMessage(text='發生錯誤!'))
def createCarouselMessage(): carousel_template = CarouselTemplate(columns=[ CarouselColumn( text='予定1', title='予定1に関するメッセージです', #thumbnail_image_url = 'https://c.o16.co/1/gift/image/sc1-3145-300-2.jpg', actions=[ PostbackTemplateAction( label='postback1', text='postback text1', data='text1'), MessageTemplateAction(label='message1', text='message text1'), URITemplateAction(label='Go to Google', uri='http://www.google.co.jp') ]), CarouselColumn( text='予定2', title='予定2に関するメッセージです', #thumbnail_image_url = 'https://c.o16.co/1/gift/image/sc1-3145-300-2.jpg', actions=[ PostbackTemplateAction( label='postback2', text='postback text2', data='text2'), MessageTemplateAction(label='message2', text='message text2'), URITemplateAction(label='Go to Yahoo', uri='http://www.yahoo.co.jp') ]) ]) template_message = TemplateSendMessage(alt_text='これはテストカルーセルです.', template=carousel_template) return template_message
def test_get_carousel_columns(self): resp = response.KKBOXResponse(response_text='ResponseTextToUser', data_obj=self.test_data_obj) columns = resp._get_carousel_columns() self.assertEqual(len(columns), 2) self.assertIsInstance(columns[0], CarouselColumn) self.assertEqual(columns[0].text, self.test_data_obj[0]['artist']) self.assertEqual(columns[0].title, self.test_data_obj[0]['title']) self.assertEqual(columns[0].thumbnail_image_url, self.test_data_obj[0]['photo'][1]['url']) self.assertEqual(columns[0].actions, [ URITemplateAction(label='Open in KKBOX', uri=self.test_data_obj[0]['url']) ]) self.assertIsInstance(columns[1], CarouselColumn) self.assertEqual(columns[1].text, self.test_data_obj[1]['artist']) self.assertEqual(columns[1].title, self.test_data_obj[1]['title']) self.assertEqual(columns[1].thumbnail_image_url, self.test_data_obj[1]['photo'][1]['url']) self.assertEqual(columns[1].actions, [ URITemplateAction(label='Open in KKBOX', uri=self.test_data_obj[1]['url']) ])
def handle_location_message(event): user_id = event.source.user_id #獲得經緯度 lan = event.message.latitude lon = event.message.longitude Confirm_template = TemplateSendMessage( alt_text='請選擇起始地與目的地', template=ButtonsTemplate( title='請選擇起始地與目的地', text='請選擇蘭陽博物館作為您的起始地或目的地?\n或者重新輸入您現在的位置', actions=[ URITemplateAction( label='起始地', uri='https://www.google.com/maps/dir/?api=1&origin=宜蘭博物館'+'&destination='+str(lan)+','+str(lon) ), URITemplateAction( label='目的地', uri='https://www.google.com/maps/dir/?api=1&origin='+str(lan)+','+str(lon)+'&destination=宜蘭博物館' ), URITemplateAction( label='重新定位', uri='line://nv/location' ) ] ) ) line_bot_api.reply_message(event.reply_token,Confirm_template)
def on_enter_state7(self, event): print("I'm entering state7") title_list = [] url_list = [] reply_token = event.reply_token text = event.message.text find = text.split(":", 2) print(find) bug5(title_list, url_list, find[1]) if (len(title_list) != 0): message_t = TemplateSendMessage( alt_text='Buttons template', template=ButtonsTemplate( thumbnail_image_url= 'https://upload.wikimedia.org/wikipedia/commons/f/f8/Dcard_Favicon_x520.png', title=find[1], text='Top 4 articles', actions=[ URITemplateAction(label=title_list[0], uri=set_url + url_list[0]), URITemplateAction(label=title_list[1], uri=set_url + url_list[1]), URITemplateAction(label=title_list[2], uri=set_url + url_list[2]), URITemplateAction(label=title_list[3], uri=set_url + url_list[3]) ])) send_temp_message(reply_token, message_t) else: send_text_message(reply_token, "搜尋不到 " + find[1]) self.go_back()
def createCarouselMessage2(): carousel_template = CarouselTemplate(columns=[ CarouselColumn( text='予定1に関するメッセージです.', title='予定1', thumbnail_image_url= 'https://dnavi.drwallet.jp/wp-content/uploads/2015/10/401428927e7866f2a637820429da114d.jpg', actions=[ PostbackTemplateAction( label='postback1', text='postback text1', data='text1'), MessageTemplateAction(label='message1', text='message text1'), URITemplateAction(label='Go to Google', uri='http://www.google.co.jp') ]), CarouselColumn( text='予定2に関するメッセージです.', title='予定2', thumbnail_image_url= 'https://c.o16.co/1/gift/image/sc1-3145-300-2.jpg', actions=[ PostbackTemplateAction( label='postback2', text='postback text2', data='text2'), MessageTemplateAction(label='message2', text='message text2'), URITemplateAction(label='Go to Yahoo', uri='http://www.yahoo.co.jp') ]) ]) template_message = TemplateSendMessage(alt_text='これはテストカルーセルです.', template=carousel_template) return template_message
def get_movie_template(movie_id): if movie_id is None: return TextSendMessage(text="沒有這個電影耶~查查看別的吧!") movie_name = movie_dict[movie_id][0] movie_pic = movie_dict[movie_id][1] movie_url = detail_url_by_id + movie_id movie_trailer = get_trailer_url(movie_url) if movie_trailer is None: uri_template = URITemplateAction(type='uri', label='Picture', uri=movie_pic) else: uri_template = URITemplateAction(type='uri', label='Trailer', uri=movie_trailer) buttons_template = ButtonsTemplate( type='buttons', title=movie_name[0:40], text='Check out more information for the movie!', thumbnail_image_url=movie_pic, actions=[ PostbackTemplateAction(label='Movie Info', data='movie=%s&action=3&' % movie_id), PostbackTemplateAction(label='Movie Story', data='movie=%s&action=6&' % movie_id), uri_template, PostbackTemplateAction(label='Show Times', data='movie=%s&action=1&' % movie_id) ]) message = TemplateSendMessage(type='template', alt_text=movie_name, template=buttons_template) return message
def Pose(event): #圖片轉盤 print("### module.sendCarousel.Pose") try: message = TemplateSendMessage( alt_text='圖片轉盤樣板', template=ImageCarouselTemplate(columns=[ ImageCarouselColumn( image_url= 'https://mmbiz.qpic.cn/mmbiz_gif/BIatWXEC82a8OZkXr3tYwIpzNJulySPHZuZftKf5B7w3wcGrjerpicMI5BSCPXGsPwmE6qzpgFfr1jGkxkoqpPA/640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=1', action=URITemplateAction( label='深蹲20下', uri='line://app/1653356616-5Jkb6kLV')), ImageCarouselColumn( image_url= 'https://s3-ap-southeast-1.amazonaws.com/img.khoobsurati.com/wp-content/uploads/2015/05/img-Push-Ups-2018-07.gif', action=URITemplateAction( label='伏地挺身20下', uri='line://app/1653356616-5Jkb6kLV')), ImageCarouselColumn( image_url= 'https://cdn.shopify.com/s/files/1/1501/0558/files/SitUp.gif?v=1514735483', action=URITemplateAction( label='仰臥起坐20下', uri='line://app/1653356616-5Jkb6kLV')), ImageCarouselColumn( image_url= 'https://us.123rf.com/450wm/logo3in1/logo3in11510/logo3in1151000001/46716051-woman-making-perfect-body-with-the-plank-exercis.jpg?ver=6', action=URITemplateAction( label='棒棒式40秒', uri='line://app/1653356616-5Jkb6kLV')) ])) #return HttpResponse() line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token, TextSendMessage(text='發生錯誤!'))
def get_text_response(event): text = event.message.text if text == 'egrid': buttons_template = \ ButtonsTemplate(title='Interview', text='E-Grid Visualization', actions=[URITemplateAction( label='Go to E-Grid', uri='https://egrid.jp/projects')]) response_message = TemplateSendMessage(alt_text='E-grid link', template=buttons_template) return response_message elif text == 'upload': buttons_template = \ ButtonsTemplate(title='Upload', text='Upload data to database', actions=[URITemplateAction( label='Go to data form', uri='https://yuqingguan.top/upload')]) response_message = TemplateSendMessage(alt_text='upload link', template=buttons_template) return response_message else: profile = line_bot_api.get_profile(event.source.user_id) reply_text = profile.display_name + ' : ' tagger = MeCab.Tagger('mecabrc') tagger.parse('') node = tagger.parseToNode(text) while node: word = node.surface reply_text += (word + ' ') node = node.next return TextSendMessage(reply_text)
def make_messsage(self, text): if "オッケー藍染" == text or "オッケーあいぜん" == text: carousel_template_message = TemplateSendMessage( alt_text='Carousel template', template=CarouselTemplate(columns=[ CarouselColumn( thumbnail_image_url= 'https://shota-imazeki.herokuapp.com/static/あつもり_魚.jpg', title='あつもり魚検索機能', text='北 or 南半球、対象月を選択することでその時期に取れる魚の種類と値段が分かります。', actions=[ URITemplateAction( label='ダッシュボードへ', uri= 'https://public.tableau.com/profile/.43986973#!/vizhome/bugs/fish_1?publish=yes' ) ]), CarouselColumn( thumbnail_image_url= 'https://shota-imazeki.herokuapp.com/static/あつもり_虫.jpg', title='あつもり昆虫検索機能', text='北 or 南半球、対象月を選択することでその時期に取れる虫の種類と値段が分かります。', actions=[ URITemplateAction( label='ダッシュボードへ', uri= 'https://public.tableau.com/profile/.43986973#!/vizhome/bugs/bugs_1?publish=yes' ) ]) ])) return carousel_template_message, True else: return None, False
def on_enter_state1(self, event): print("I'm entering state1") reply_token = event.reply_token title_list = [] url_list = [] bug1(title_list, url_list) message_t = TemplateSendMessage( alt_text='Buttons template', template=ButtonsTemplate( thumbnail_image_url= 'https://upload.wikimedia.org/wikipedia/commons/f/f8/Dcard_Favicon_x520.png', title='熱門文章', text='Top 4 articles', actions=[ URITemplateAction(label=title_list[0], uri=set_url + url_list[0]), URITemplateAction(label=title_list[1], uri=set_url + url_list[1]), URITemplateAction(label=title_list[2], uri=set_url + url_list[2]), URITemplateAction(label=title_list[3], uri=set_url + url_list[3]) ])) send_temp_message(reply_token, message_t) self.go_back()
class MessageEnum(Enum): # ページに画像がある場合のメッセージテンプレート MESSAGE_WITH_FIGURE = lambda title, figure_url, content, got_page_url\ : TemplateSendMessage( alt_text = title[:37] + "...", template = ButtonsTemplate( thumbnail_image_url = figure_url, title = title[:37] + "...", text = content[:57] + "...", actions = [ URITemplateAction( label = '続きを見る', uri = got_page_url ) ] ) ) # ページに画像がない場合のメッセージテンプレート MESSAGE_WITHOUT_FIGURE = lambda title, content, got_page_url\ : TemplateSendMessage( alt_text = title[:37] + "...", template = ButtonsTemplate( title = title[:37] + "...", text = content[:57] + "...", actions = [ URITemplateAction( label = '続きを見る', uri = got_page_url ) ] ) )
def sendCarousel5(event): #按鈕樣版 try: message = TemplateSendMessage( alt_text='24HBOT', template=ButtonsTemplate( thumbnail_image_url='https://i.imgur.com/CQZixLR.jpg', #顯示的圖片 title='各國朋友LINE群組翻譯機器人', #主標題 text='LINE群組內各國朋友留言即時互相翻譯\n適用交友群組,適用外國員工群組', #副標題 actions=[ MessageTemplateAction( #顯示文字計息 label='收費標準及額外贈送功能', text= '*各國朋友LINE群組機器人\n*額外贈送功能:\n1.免費自動推播文字訊息給客戶(不受500則訊息限制)\n2.您可以設定以後的時間以line訊息提醒自己該辦的事情\n*收費標準:\n訂做收費:4000元(限時促銷價) \n訂閱收費:每月188元' ), URITemplateAction( #開啟網頁 label='更多了解功能', uri='https://www.youtube.com/watch?v=bGAY-IY90H4'), URITemplateAction( label='免費試用或訂購', uri='https://unitbesto.wixsite.com/mysite') ])) line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token, TextSendMessage(text='發生錯誤!'))
def sendButton(event): #按鈕樣版 try: message = TemplateSendMessage( alt_text='24HBOT', template=ButtonsTemplate( thumbnail_image_url='https://i.imgur.com/0a65QKx.jpg', #顯示的圖片 title='中小企業24H客服機器人', #主標題 text='微軟人工智慧機器學習系統\n24H全自動客服\n完全取代傳統客服', #副標題 actions=[ MessageTemplateAction( #顯示文字計息 label='收費標準及額外贈送功能', text= '*中小企業24H客服機器人\n*額外贈送功能:\n1.免費自動推播文字訊息給客戶(不受500則訊息限制)\n2.您可以設定以後的時間以line訊息提醒自己該辦的事情\n*收費標準:\n訂做收費:9000元(限時促銷價) \n訂閱收費:每月388元' ), URITemplateAction( #開啟網頁 label='更多了解功能', uri='https://www.youtube.com/watch?v=bGAY-IY90H4'), URITemplateAction( label='免費試用或訂購', uri='https://unitbesto.wixsite.com/mysite') ])) line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token, TextSendMessage(text='發生錯誤!'))
def handle_follow(event): user_id = event.source.user_id #取得使用者的user_id to = user_id link = "https://docs.google.com/forms/d/e/1FAIpQLSeNeVnnTYOc-TVJJQwF6O1GhG6Mu9VbV3lpcESqA2u-NWWjbQ/viewform?usp=pp_url&entry.323500799=" + to #進入Google表單並將使用者的use_id自動填入google表單的身分憑證 #讓使用者選擇是否填寫電影調查,若使用者選擇是則跳到Google表單部分反之則 button_template_message = ButtonsTemplate( title='尊敬的iMovie新用戶', text='打擾您寶貴的幾分鐘時間幫我們填寫一下電影喜好度問卷,我們將根據您的喜好推薦適合您的電影', ratio="1.51:1", actions=[ URITemplateAction(label='我願意填寫', uri='%s' % (link)), URITemplateAction(label='我不要填寫', uri='%s' % (link)) ]) line_bot_api.push_message( to, TemplateSendMessage(alt_text="歡迎使用iMovie,電影君在此為您竭誠服務", template=button_template_message)) #****以下為連接Firebase並紀錄下使用者的動作紀錄**** x = datetime.datetime.now(tz) # 取得當下時間 time_now = str(x.year) + ' ' + str(x.month) + ' ' + str( x.day) + ' ' + ' ' + str(x.date().isoweekday()) + ' ' + str( x.hour) + ' ' + str(x.minute) + ' ' + str(x.second) text = '加入Line聊天機器人' #將使用者的ID上傳到Firebase上面方便之後進行推播 users_ref = db.collection("使用者ID以及動作紀錄").document(user_id) doc_User_action = { # 傳送每一筆電影的「英文名稱」到 隨機推薦電影清單/上映中 "%s" % (str(time_now)): "%s" % (str(text)) } try: users_ref.update(doc_User_action) # 若Firebase中已經存在該使用者的資訊 except google.cloud.exceptions.NotFound: users_ref.set(doc_User_action) # 若Firebase中還沒有該使用者的資訊
def sendCarousel(event): #轉盤樣板 try: message = TemplateSendMessage( alt_text='轉盤樣板', template=CarouselTemplate(columns=[ CarouselColumn( thumbnail_image_url='https://i.imgur.com/4QfKuz1.png', title='這是樣板一', text='第一個轉盤樣板', actions=[ MessageTemplateAction(label='文字訊息一', text='賣披薩'), URITemplateAction(label='連結文淵閣網頁', uri='http://www.e-happy.com.tw'), PostbackTemplateAction(label='回傳訊息一', data='action=sell&item=披薩'), ]), CarouselColumn( thumbnail_image_url='https://i.imgur.com/qaAdBkR.png', title='這是樣板二', text='第二個轉盤樣板', actions=[ MessageTemplateAction(label='文字訊息二', text='賣飲料'), URITemplateAction(label='連結台大網頁', uri='http://www.ntu.edu.tw'), PostbackTemplateAction(label='回傳訊息二', data='action=sell&item=飲料'), ]) ])) line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token, TextSendMessage(text='發生錯誤!'))
def send_restaurant_info(reply_token, image_url, info_url, map_url, rec_url): line_bot_api = LineBotApi(channel_access_token) buttons_template = TemplateSendMessage( alt_text='Buttons Template', template=ButtonsTemplate( title='餐廳資訊', text='點擊看介紹、地圖、更多推薦!', thumbnail_image_url=image_url, actions=[ URITemplateAction( label='介紹', uri=info_url ), URITemplateAction( label='地圖', uri=map_url ), URITemplateAction( label='更多推薦', uri=rec_url ), ] ) ) line_bot_api.reply_message(reply_token, buttons_template) return "OK"
def handle_message(event): if event.message.text == 'รูป': image_message = ImageSendMessage( original_content_url='https://imagemovie.herokuapp.com/pic1.jpg', preview_image_url='https://imagemovie.herokuapp.com/pic1.jpg' ) line_bot_api.push_message('U7183997e3e85a10d8c5f1f3925825016', image_message) if event.message.text=='ปุ่ม': message = TemplateSendMessage( alt_text='Carousel template', template=CarouselTemplate( columns=[ CarouselColumn( thumbnail_image_url='https://imagemovie.herokuapp.com/tt3501632.jpg', title='this is menu1', text='description1', actions=[ PostbackTemplateAction( label='postback1', text='postback text1', data='action=buy&itemid=1' ), MessageTemplateAction( label='message1', text='message text1' ), URITemplateAction( label='uri1', uri='http://mandm.plearnjai.com/' ) ] ), CarouselColumn( thumbnail_image_url='https://imagemovie.herokuapp.com/tt3501632.jpg', title='this is menu2', text='description2', actions=[ PostbackTemplateAction( label='postback2', text='postback text2', data='action=buy&itemid=2' ), MessageTemplateAction( label='message2', text='message text2' ), URITemplateAction( label='uri2', uri='http://mandm.plearnjai.com/' ) ] ) ] ) ) line_bot_api.reply_message(event.reply_token, message)
def power_carousel_template_message(start="2017-01-01", end="2017-12-31"): power_data = [] for politician_name in power_politician_dict: power_data.append(db(politician_name, start, end)[0]) power_carousel_template_message = TemplateSendMessage( alt_text='Carousel template', template=CarouselTemplate(columns=[ CarouselColumn(thumbnail_image_url=Webhook_URL + '/static/images/{}'.format(power_data[0][5]), title='{}'.format(power_data[0][0]), text='想了解更多資訊\n請點擊『更多』 ', actions=[ PostbackTemplateAction(label='臉書粉絲回應', data="{} 則回應數".format( power_data[0][1])), PostbackTemplateAction( label='情緒正負向', data="正向:{}% \n中立:{}% \n負向:{}%".format( power_data[0][2], power_data[0][3], power_data[0][4])), URITemplateAction(label='更多', uri=Ourweb + power_data[0][5]) ]), CarouselColumn(thumbnail_image_url=Webhook_URL + '/static/images/{}'.format(power_data[1][5]), title='{}'.format(power_data[1][0]), text='想了解更多資訊\n請點擊『更多』 ', actions=[ PostbackTemplateAction(label='臉書粉絲回應', data="{} 則回應數".format( power_data[1][1])), PostbackTemplateAction( label='情緒正負向', data="正向:{}% \n中立:{}% \n負向:{}%".format( power_data[1][2], power_data[1][3], power_data[1][4])), URITemplateAction(label='更多', uri=Ourweb + power_data[1][5]) ]), CarouselColumn(thumbnail_image_url=Webhook_URL + '/static/images/{}'.format(power_data[2][5]), title='{}'.format(power_data[2][0]), text='想了解更多資訊\n請點擊『更多』 ', actions=[ PostbackTemplateAction(label='臉書粉絲回應', data="{} 則回應數".format( power_data[2][1])), PostbackTemplateAction( label='情緒正負向', data="正向:{}% \n中立:{}% \n負向:{}%".format( power_data[2][2], power_data[2][3], power_data[2][4])), URITemplateAction(label='更多', uri=Ourweb + power_data[2][5]) ]), ])) return power_carousel_template_message
def handout(): handout_carouse = CarouselTemplate(columns=[ CarouselColumn(thumbnail_image_url=handout_icon1, title='課程講義 page 1', text='請選擇您要的講義', actions=[ URITemplateAction(label='網頁概論', uri=html_url), URITemplateAction(label='Python 基礎', uri=python_basic_url), URITemplateAction(label='Linux', uri=linux_url), ]), CarouselColumn(thumbnail_image_url=handout_icon2, title='課程講義 page 2', text=' ', actions=[ URITemplateAction(label='PyETL', uri=pyetl_url), URITemplateAction(label='PyAI', uri=pyai_url), URITemplateAction(label='Data Mining(含R語言)', uri=data_mining_url), ]), CarouselColumn(thumbnail_image_url=handout_icon3, title='課程講義 page 3', text=' ', actions=[ URITemplateAction(label='NoSQL', uri=nosql_url), URITemplateAction(label='Text Mining + NLU', uri=text_mining_nlu_url), URITemplateAction(label='Kafka', uri=kafka_url), ]) ]) return handout_carouse
def sightseeing_nearby(user_token): place_name = [] #景點名稱 users_ref = db.collection("附近景點") docs = users_ref.get() for doc in docs: place_name.append(doc.id) line_bot_api.push_message( user_token, TextSendMessage('正在為您搜尋蘭陽博物館附近景點資訊,請稍等片刻...') ) place_name_R = [] movie_num_random = random.sample(range(0, len(place_name)), 5) for num in movie_num_random: place_name_R.append(place_name[num]) # 宣告儲存橫向捲軸的list column_list = [] for lis in range(0, len(place_name_R)): users_ref = db.collection("附近景點").document("%s" % (place_name_R[lis])) doc = users_ref.get() lat = doc.to_dict()['景點位置'].split(' ')[0] lon = doc.to_dict()['景點位置'].split(' ')[1] distance = round(calcDistance(24.8687221,121.8303194,float(lat),float(lon)),2) carouselcolumn = CarouselColumn( thumbnail_image_url=doc.to_dict()['圖片URL'].strip(), title=place_name_R[lis]+'(距離蘭博'+str(distance)+'公里)', text='主題分類:'+doc.to_dict()['主題分類'] + '\n' + '開放時間:' + doc.to_dict()['開放時間'], actions=[ URITemplateAction( label='詳細資訊', uri=doc.to_dict()['景點介紹網址'].strip() ), URITemplateAction( label='導航去這裡玩', uri='https://www.google.com/maps/dir/?api=1&destination=' + place_name_R[lis].replace(" ","%2C") ) ] ) column_list.append(carouselcolumn) Carousel_template = CarouselTemplate( columns=column_list, image_aspect_ratio="square", # 圖片形狀,一共兩個參數。square指圖片1:1,rectangle指圖片1.5:1 image_size="contain" # 圖片size大小設定,一共兩個參數。cover指圖片充滿畫面,contain指縮小圖片塞到畫面 ) line_bot_api.push_message(user_token, TemplateSendMessage(alt_text="為您推薦附近景點", template=Carousel_template))
def introduction_template(): buttons_template = ButtonsTemplate( title=u'機器人簡介', text='歡迎使用小水母!', actions=[ URITemplateAction(label=u'點此開啟使用說明', uri='https://sites.google.com/view/jellybot'), URITemplateAction(label=u'點此導向問題回報網址', uri='https://github.com/RaenonX/LineBot/issues'), MessageTemplateAction(label=u'點此查看群組資料', text='JC\nG') ]) template_message = TemplateSendMessage(alt_text=u'機器人簡介', template=buttons_template) return template_message
def send_customerService_message(self, reply_token): buttons_template = ButtonsTemplate( title="如果人在臺中市,我們有不同服務喔!", text="於臺中市請撥市民一碼通1999,\n於外縣市請撥0422203585", actions=[ URITemplateAction(label="於台中市", uri="tel://1999"), URITemplateAction(label="於外縣市", uri="tel://04-22203585"), ]) template_message = TemplateSendMessage(alt_text="你現在在哪個園區呢?可以先告訴我嗎?", template=buttons_template) self.line_bot_api.reply_message(reply_token, template_message)
def introduction_template(): buttons_template = ButtonsTemplate( title='機器人簡介', text='歡迎使用小水母!', actions=[ URITemplateAction( label='點此開啟使用說明', uri='https://sites.google.com/view/jellybot'), URITemplateAction( label='點此導向問題回報網址', uri='https://github.com/RaenonX/LineBot/issues'), URITemplateAction(label='群組管理權限申請單', uri='https://goo.gl/forms/91RWtMKZNMvGrpk32') ]) return TemplateSendMessage(alt_text='機器人簡介', template=buttons_template)
def sendButton(event): #按鈕樣版 try: message = TemplateSendMessage( alt_text='吉利蝦', template=ButtonsTemplate( thumbnail_image_url='https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTp_s-o88lkQL3Gic648L3cynz4GqNfP_q8fYomogxEr7Y0JAAA&usqp=CAU', #顯示的圖片 title='吉利蝦', #主標題 text='請選擇:', #副標題 actions=[ MessageTemplateAction( #顯示文字計息 label='文字訊息', text='@購買吉利蝦' ), URITemplateAction( #開啟網頁 label='連結網頁', uri='http://www.e-happy.com.tw' ), PostbackTemplateAction( #執行Postback功能,觸發Postback事件 label='回傳訊息', #按鈕文字 #text='@購買吉利蝦', #顯示文字計息 data='action=buy' #Postback資料 ), ] ) ) line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token,TextSendMessage(text='發生錯誤!'))
def create_facebook_richmenu(line_bot_api, user_id): facebook_uri = "https://www.facebook.com/profile.php?id=100002433519943" ### Create one rich menu rich_menu_to_create = RichMenu(size=RichMenuBound(width=2500, height=1686), selected=False, name="Fabebook Page", chatBarText="Gift", areas=[ RichMenuArea( RichMenuBound(x=0, y=0, width=2000, height=1300), URITemplateAction(uri=facebook_uri)) ]) rich_menu_id = line_bot_api.create_rich_menu(rich_menu_to_create) ### Set image to rich_menu with open("dog.jpg", "rb") as f: pic = f.read() line_bot_api.set_rich_menu_image(rich_menu_id, "image/jpeg", pic) ### Link rich_menu_id and user_id line_bot_api.link_rich_menu_to_user(user_id, rich_menu_id) ### Console print( "[Create] The facebook rich menu is created and linked to the user_id = {}" .format(user_id))
def sendButton(event): #按鈕樣版 try: message = TemplateSendMessage( alt_text='詩禮銀杏', template=ButtonsTemplate( thumbnail_image_url='https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRQNwAWZiFYrLt-Nq9rOKUbwwGaZWOKrOdOFhgEUYuvlLVfTk5o&usqp=CAU', #顯示的圖片 title='詩禮銀杏', #主標題 text='請選擇:', #副標題 actions=[ MessageTemplateAction( #顯示文字計息 label='文字訊息', text='@購買詩禮銀杏' ), URITemplateAction( #開啟網頁 label='連結網頁', uri='http://www.e-happy.com.tw' ), PostbackTemplateAction( #執行Postback功能,觸發Postback事件 label='回傳訊息', #按鈕文字 #text='@購買詩禮銀杏', #顯示文字計息 data='action=buy' #Postback資料 ), ] ) ) line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token,TextSendMessage(text='發生錯誤!'))
def sendButton(event): #按鈕樣版 try: message = TemplateSendMessage( alt_text='楊枝甘露', template=ButtonsTemplate( thumbnail_image_url='https://sites.google.com/site/tianzainixin/_/rsrc/1338273788738/gang-shi-tang-shui/yuan-mu-tong-dou-fu-hua/楊枝甘露.jpg', #顯示的圖片 title='楊枝甘露', #主標題 text='請選擇:', #副標題 actions=[ MessageTemplateAction( #顯示文字計息 label='文字訊息', text='@購買楊枝甘露' ), URITemplateAction( #開啟網頁 label='連結網頁', uri='http://www.e-happy.com.tw' ), PostbackTemplateAction( #執行Postback功能,觸發Postback事件 label='回傳訊息', #按鈕文字 #text='@購買楊枝甘露', #顯示文字計息 data='action=buy' #Postback資料 ), ] ) ) line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token,TextSendMessage(text='發生錯誤!'))