def start_over(user_id, context): global user_conversations user_dictionary = next(item for item in user_conversations if item["recipient"]['id'] == user_id) user_dictionary['context'] = {} user_dictionary['payment'] = { "name": "", "cardNumber": "", "phoneNumber": "", "email": "", "address": "", "railcard": "" } recipient = messages.Recipient(user_id) buy_tickets_button = elements.PostbackButton(title="Buy Tickets", payload="buyTickets") help_button = elements.PostbackButton(title="Display Help", payload="displayHelp") template = templates.ButtonTemplate( text="Is there anything else I can help you with?", buttons=[buy_tickets_button, help_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request)
def get_results_attachment(listings_data_items, more_url=None): tpl_elements = list() for listing_d in listings_data_items: buttons = list() if more_url: buttons.append( elements.WebUrlButton( title='View more', url=more_url, )) buttons.append( elements.WebUrlButton( title='View this listing', url=listing_d['listing_url'], )) element_kwargs = dict(title=Truncator(listing_d['title']).chars(44), subtitle=Truncator( listing_d['fmt_address']).chars(79), buttons=buttons) image_url = listing_d.get('image_url', None) if image_url: element_kwargs['image_url'] = image_url element = elements.Element(**element_kwargs) tpl_elements.append(element) template = templates.GenericTemplate(tpl_elements) return attachments.TemplateAttachment(template=template)
def ask_user_for_origin(user_id, savedHome, savedUniversity): recipient = messages.Recipient(user_id) if savedHome: home_location_button = elements.PostbackButton(title=savedHome, payload="useSavedHome") if savedUniversity: university_location_button = elements.PostbackButton( title=savedUniversity, payload="useSavedUniversity") other_location_button = elements.PostbackButton(title="Other", payload="useOtherLocation") if savedHome and savedUniversity: template = templates.ButtonTemplate(text="What about for your origin?", buttons=[ home_location_button, university_location_button, other_location_button ]) elif savedHome: template = templates.ButtonTemplate( text="What about for your origin?", buttons=[home_location_button, other_location_button]) elif savedUniversity: template = templates.ButtonTemplate( text="What about for your origin?", buttons=[university_location_button, other_location_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request) return
def askUserForDestination(user_id, savedHome, savedUniversity): recipient = messages.Recipient(user_id) if savedHome: home_location_button = elements.PostbackButton(title=savedHome, payload="useSavedHome") if savedUniversity: university_location_button = elements.PostbackButton( title=savedUniversity, payload="useSavedUniversity") other_location_button = elements.PostbackButton(title="Other", payload="useOtherLocation") if savedHome and savedUniversity: template = templates.ButtonTemplate( text= "Would you like to use a previous location as your destination?", buttons=[ home_location_button, university_location_button, other_location_button ]) elif savedHome: template = templates.ButtonTemplate( text= "Would you like to use a previous location as your destination?", buttons=[home_location_button, other_location_button]) elif savedUniversity: template = templates.ButtonTemplate( text= "Would you like to use a previous location as your destination?", buttons=[university_location_button, other_location_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request) return
def ask_ticket_speed_references(user_id, context): global user_conversations user_dictionary = next(item for item in user_conversations if item["recipient"]['id'] == user_id) recipient = messages.Recipient(user_id) if 'returnTime' in context: if user_dictionary['ticketPreference'] == "": cheaper_button = elements.PostbackButton( title="Cheaper", payload="ticketPreferenceCheaper") sweet_spot_button = elements.PostbackButton( title="Sweet Spot", payload="ticketPreferenceSweetSpot") faster_button = elements.PostbackButton( title="Faster", payload="ticketPreferenceFaster") template = templates.ButtonTemplate( text="What are your ticket preferences?", buttons=[cheaper_button, sweet_spot_button, faster_button]) else: use_old_preference_button = elements.PostbackButton( title="Use " + user_dictionary['ticketPreference'], payload="useOldTicketPreference") dont_use_old_preference_button = elements.PostbackButton( title="Change ticket prefs", payload="changePreferences") template = templates.ButtonTemplate( text="You have a saved preference. Would you like to use that?", buttons=[ use_old_preference_button, dont_use_old_preference_button ]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request) return context
def make_button_choices(text, choices): assert len(choices) <= 3 postback_buttons = list() for payload, button_text in choices: btn = elements.PostbackButton(title=button_text, payload=payload) postback_buttons.append(btn) el = templates.ButtonTemplate(text=text, buttons=postback_buttons) return attachments.TemplateAttachment(template=el)
def send_yes_no_template(user_id): recipient = messages.Recipient(user_id) yes_button = elements.PostbackButton(title="Yes", payload="yesConfirmation") no_button = elements.PostbackButton(title="No", payload="noConfirmation") template = templates.ButtonTemplate(text="Is this correct?", buttons=[yes_button, no_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request)
def ask_to_save_payment(user_id, context): recipient = messages.Recipient(user_id) yes_button = elements.PostbackButton(title="Yes", payload="yesPayment") no_button = elements.PostbackButton(title="No", payload="noPayment") template = templates.ButtonTemplate( text="Awesome. Would you like to save these details for next time?", buttons=[yes_button, no_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request) pass
def handle_welcome(fbid, received_message): recipient = messages.Recipient(recipient_id=fbid) red_button = elements.PostbackButton(title='Rouge', payload='Rouge') white_button = elements.PostbackButton(title='Blanc', payload='Blanc') rose_button = elements.PostbackButton(title='Rose', payload='Rose') template = templates.ButtonTemplate( text='Bonjour, quelle couleur de vin desirez-vous ?', buttons=[red_button, white_button, rose_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request)
def send_single_or_return_template(user_id): recipient = messages.Recipient(user_id) single_button = elements.PostbackButton(title="Single", payload="singleTicket") return_button = elements.PostbackButton(title="Return", payload="returnTicket") template = templates.ButtonTemplate( text="Would you like a Single or a Return ticket?", buttons=[single_button, return_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request)
def ask_return_date(user_id, context): recipient = messages.Recipient(user_id) one_way_button = elements.PostbackButton(title="One way only", payload="oneWayTicket") template = templates.ButtonTemplate( text= "What date and time would you like to return? Please type if not one way.", buttons=[one_way_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request) return context
def ask_for_railcard(user_id, context): recipient = messages.Recipient(user_id) young_persons_button = elements.PostbackButton(title="16-25 Railcard", payload="yesRailcard") other_button = elements.PostbackButton(title="Other", payload="otherRailcard") no_button = elements.PostbackButton(title="No", payload="noRailcard") template = templates.ButtonTemplate( text="One more thing: do you have a railcard?", buttons=[young_persons_button, other_button, no_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request)
def ask_to_memorize_location(user_id, context): recipient = messages.Recipient(user_id) location_save_yes_button = elements.PostbackButton( title="Yes", payload="saveLocationConfirmedYes") location_save_no_button = elements.PostbackButton( title="No", payload="saveLocationConfirmedNo") template = templates.ButtonTemplate( text="Would you like to save this location?", buttons=[location_save_yes_button, location_save_no_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request) return context
def ask_to_save_ticket_preferences(user_id, context): recipient = messages.Recipient(user_id) yes_button = elements.PostbackButton(title="Yes", payload="saveTicketPreferences") no_button = elements.PostbackButton(title="No", payload="doNotSaveTicketPreferences") template = templates.ButtonTemplate( text="Would you like to save your ticket preferences?", buttons=[yes_button, no_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request) return context
def test_template_attachment(self): """ TemplateAttachment """ template_text = 'What do you want to do next?', postback_button = elements.PostbackButton( title='Start chatting', payload='USER_DEFINED_PAYLOAD') template = templates.ButtonTemplate(text=template_text, buttons=[postback_button]) template_attachment = attachments.TemplateAttachment(template=template) _dic = template_attachment.to_dict() payload = _dic['payload'] self.assertEqual(_dic['type'], template_attachment.attachment_type) self.assertEqual(payload['text'], template_text) self.assertEqual(payload['template_type'], 'button')
def handle_button(fbid, data): """ Handles the sending to messenger of a button template of postback buttons """ recipient = messages.Recipient(recipient_id=fbid) text = data["text"] button_list = [] for option in data["options"]: button_text = option["text"] button_payload = option["payload"] button_list.append( elements.PostbackButton(title=button_text, payload=button_payload)) template = templates.ButtonTemplate(text=text, buttons=button_list) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request)
def test_button_template(self): web_button = elements.WebUrlButton( title='Show website', url='https://petersapparel.parseapp.com') postback_button = elements.PostbackButton( title='Start chatting', payload='USER_DEFINED_PAYLOAD') template = templates.ButtonTemplate( text='What do you want to do next?', buttons=[web_button, postback_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(self.recipient, message) self.assertEquals( request.serialise(), '{"message": {"attachment": {"type": "template", "payload": {"template_type": "button", "text": "What do you want to do next?", "buttons": [{"url": "https://petersapparel.parseapp.com", "type": "web_url", "title": "Show website"}, {"type": "postback", "payload": "USER_DEFINED_PAYLOAD", "title": "Start chatting"}]}}}, "recipient": {"id": "123"}}' )
def ask_to_save_used_railcard(user_id, context): global user_conversations user_dictionary = next(item for item in user_conversations if item["recipient"]['id'] == user_id) recipient = messages.Recipient(user_id) yes_railcard_button = elements.PostbackButton(title="Yes", payload="yesSavedRailcard") no_railcard_button = elements.PostbackButton(title="No", payload="noRailcard") template = templates.ButtonTemplate( text="You have a saved railcard: " + user_dictionary['savedPayment']['railcard'] + ". Would you like to use it?", buttons=[yes_railcard_button, no_railcard_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request)
def ask_to_use_saved_payment(user_id, context): global user_conversations user_dictionary = next(item for item in user_conversations if item["recipient"]['id'] == user_id) recipient = messages.Recipient(user_id) use_saved_payment_button = elements.PostbackButton( title=user_dictionary['savedPayment']['email'], payload="useSavedPayment") dont_use_saved_payment_button = elements.PostbackButton( title="New email address", payload="enterNewPayment") template = templates.ButtonTemplate( text="You have a saved email address. Would you like to use that?", buttons=[use_saved_payment_button, dont_use_saved_payment_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request) return context
def test_generic_template(self): element = elements.Element( title='Classic White T-Shirt', image_url='http://petersapparel.parseapp.com/img/item100-thumb.png', subtitle='Soft white cotton t-shirt is back in style', buttons=[ elements.WebUrlButton( title='View Item', url= 'https://petersapparel.parseapp.com/view_item?item_id=100', ) ]) template = templates.GenericTemplate([element]) attachment = attachments.TemplateAttachment(template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(self.recipient, message) # Assert we can serialise self.assertIsInstance(request.serialise(), str)
def ask_location_nature(session_id, context): recipient = messages.Recipient(session_id) home_button = elements.PostbackButton(title="Home", payload="saveLocationAsHome") university_button = elements.PostbackButton( title="University", payload="saveLocationAsUniversity") other_button = elements.PostbackButton(title="Other", payload="saveLocationAsOther") if 'location:origin' in context: template = templates.ButtonTemplate( text="What's the nature of " + str(context['location:origin']) + "?", buttons=[home_button, university_button, other_button]) else: template = templates.ButtonTemplate( text="What's the nature of " + str(context['location:destination']) + "?", buttons=[home_button, university_button, other_button]) attachment = attachments.TemplateAttachment(template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest(recipient, message) messenger.send(request) print("Ask Location Nature final context: " + str(context)) return context
def parseUserMessage(message, recipient): message = message.lower() # Tabela vseh moznih ukazov uporabnika allCommands = ['podatki', 'prijava', 'odjava', 'zamenjava'] # Prva beseda je ukaz, vse naslednje pa dodatne informacije commandData = message.split(" ", 1) command = commandData[0] dateString = commandData[1] if len(commandData) > 1 else '' receivedMealType = '' if ':' in dateString: receivedMealType = dateString.split(':')[1].upper() dateString = dateString.split(':')[0] if command in allCommands: # We get user from database and log into malica.scng.si website userData = findUserInDatabase(recipient.recipient_id) user = malica.Malica(userData[1], userData[2]) date = datumi.vDatum(dateString) typingIndicatorOn(recipient) if command == 'podatki': try: mealType = user.pridobiPodatkeNaDan(date) if mealType == "OSN": sendMessage( recipient, "V {}, {} si na toplem obroku. {}".format( days[date.weekday()], date.strftime("%d.%m.%Y"), random.choice(topelObrokEmojiji))) elif mealType == "SUH": sendMessage( recipient, "V {}, {} si na suhem obroku. {}".format( days[date.weekday()], date.strftime("%d.%m.%Y"), random.choice(suhObrokEmojiji))) else: sendMessage( recipient, "V {}, {} si od malice odjavljen. ❌".format( days[date.weekday()], date.strftime("%d.%m.%Y"))) except Exception: sendMessage( recipient, "Oprostite, toda na ta datum ne morem najti podatkov...") elif command == 'prijava': user.prijava(date) sendMessage( recipient, "V {}, {} si na toplem obroku. {}".format( days[date.weekday()], date.strftime("%d.%m.%Y"), random.choice(topelObrokEmojiji))) elif command == 'odjava': user.odjava(date) sendMessage( recipient, "V {}, {} si od malice odjavljen. ❌".format( days[date.weekday()], date.strftime("%d.%m.%Y"))) elif command == 'zamenjava': if len(receivedMealType) > 0: user.zamenjava(date, receivedMealType) sendMessage( recipient, "V {}, {} si na {} obroku.".format( days[date.weekday()], date.strftime("%d.%m.%Y"), receivedMealType)) else: gumbSuhiObrok = elements.PostbackButton( title="Suhi obrok", payload="zamenjava {}:suh".format( date.strftime("%d.%m.%Y"))) gumbOsnovniObrok = elements.PostbackButton( title="Topli obrok", payload="zamenjava {}:osn".format( date.strftime("%d.%m.%Y"))) gumbiZamenjava = templates.ButtonTemplate( text='Kakšen tip obroka želiš?', buttons=[gumbSuhiObrok, gumbOsnovniObrok]) priponkaZamenjava = attachments.TemplateAttachment( template=gumbiZamenjava) messageZamenjava = messages.Message( attachment=priponkaZamenjava) messageRequest = messages.MessageRequest( recipient, messageZamenjava) messenger.send(messageRequest) else: sendMessage(recipient, "Oprosti, tega ukaza ne razumem. 😐") messageHelp = messages.Message(attachment=priponkaPomoc) messageRequest = messages.MessageRequest(recipient, messageHelp) messenger.send(messageRequest)
data = json.load(dataFile) accessToken = data["access_token"] serverUrl = data["server_url"] sole = data["sole"] days = [ "ponedeljek", "torek", "sredo", "četrtek", "petek", "soboto", "nedeljo" ] # Ustvarimo ustrezne gumbe za povezovanje racuna gumbPrijava = customelements.AccountLinkingButton( url="{}{}".format(serverUrl, "/prijava")) gumbiZaSePrijavit = templates.ButtonTemplate( text='Prosim prijavi se s pomočjo spodnjega gumba.', buttons=[gumbPrijava]) priponkaPrijava = attachments.TemplateAttachment(template=gumbiZaSePrijavit) # Ustvarimo gumbe za pomoc uporabniku gumbPodatki = elements.PostbackButton(title="Podatki", payload="podatki danes") gumbOdjava = elements.PostbackButton(title="Odjava", payload="odjava danes") gumbPrijava = elements.PostbackButton(title="Prijava", payload="prijava danes") #gumbZamenjava = elements.PostbackButton(title="Zamenjava danes", payload="zamenjava danes") gumbiPomoc = templates.ButtonTemplate( text='Kako ti lahko pomagam?', buttons=[gumbPodatki, gumbOdjava, gumbPrijava]) #, gumbZamenjava]) priponkaPomoc = attachments.TemplateAttachment(template=gumbiPomoc) # Emojiji za lepsi izgled odgovora topelObrokEmojiji = ["🍝", "🍕", "🍗", "🍖", "🍱", "🍜", "🍛", "🍲"] suhObrokEmojiji = ["🍞", "🍰", "🍩", "🍪", "🍔", "🍟"]
def webhook(request): if request.GET: if request.GET['hub.verify_token'] == '': return HttpResponse(request.GET['hub.challenge']) else: return HttpResponse('Error, invalid token') try: output = json.loads(request.body.decode('utf-8')) print(output) try: for event in output['entry']: messaging = event['messaging'] for x in messaging: recipient_id = x['sender']['id'] recipient = messages.Recipient(recipient_id=recipient_id) if x.get('message'): # collect text if x['message'].get('text'): if x['message'].get('text').lower( ) == 'hello' or x['message'].get( 'text').lower() == 'hi': message_text = x['message']['text'] # ask if they want to buy something # message = messages.Message(text='Hello, do you wish to buy or sell a product?') # request = messages.MessageRequest(recipient, message) # messenger.send(request) postback_button = elements.PostbackButton( title='Buy', payload='BUY') postback_button1 = elements.PostbackButton( title='Sell', payload='SELL') template = templates.ButtonTemplate( text= 'Hello, do you wish to buy or sell a product?', buttons=[ postback_button, postback_button1 ]) attachment = attachments.TemplateAttachment( template=template) message = messages.Message( attachment=attachment) request = messages.MessageRequest( recipient, message) messenger.send(request) # elif x['message'].get('text').lower() == 'Page 1': else: my_elements = [] postback_button2 = elements.PostbackButton( title="Buy", payload='BUY_1') # my_elements.append(Element(title="prod title", subtitle="prod substitle", # image_url="https://cdn.shopify.com/s/files/1/0739/4315/products/laguna_profile_mayfair_fullres_4815ea8f-83a8-4e29-841f-c099841987de.png?v=1480399889", # buttons=[postback_button2])) # my_elements.append(Element(title="prod title", subtitle="prod substitle", # image_url="https://cdn.shopify.com/s/files/1/0739/4315/products/laguna_profile_mayfair_fullres_4815ea8f-83a8-4e29-841f-c099841987de.png?v=1480399889", # buttons=[postback_button2])) # my_elements.append(Element(title="prod title", subtitle="prod substitle", # image_url="https://cdn.shopify.com/s/files/1/0739/4315/products/laguna_profile_mayfair_fullres_4815ea8f-83a8-4e29-841f-c099841987de.png?v=1480399889", # buttons=[postback_button2])) # my_elements.append(Element(title="prod title", subtitle="prod substitle", # image_url="https://cdn.shopify.com/s/files/1/0739/4315/products/laguna_profile_mayfair_fullres_4815ea8f-83a8-4e29-841f-c099841987de.png?v=1480399889", # buttons=[postback_button2])) my_elements.append( Element( title="HP Pavilion 420", subtitle="KES 24000", image_url= "http://www.browsingphones.com/wp-content/uploads/2015/11/HP-Laptop-Price-In-Kenya-Specs-Jumia-300x225.jpg", buttons=[postback_button2])) my_elements.append( Element( title="Lenovo workbook 14 inch", subtitle="KES 30000", image_url= "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcThIxirSJSLuv9qpZCeyhp30itUZ-IrndcTyloWPSHEij2e3zjo2Q", buttons=[postback_button2])) my_elements.append( Element( title="HP Workbook 8200", subtitle="KED 27000", image_url= "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQaz0E0LRQEwsNq1H24VKTn4Idxy0nnFDvHcyIuOzH9cQFJaG5E", buttons=[postback_button2])) my_elements.append( Element( title="HP Pavilion 328", subtitle="KES 45000", image_url= "https://i5.walmartimages.com/dfw/4ff9c6c9-2ac9/k2-_ed8b8f8d-e696-4a96-8ce9-d78246f10ed1.v1.jpg", buttons=[postback_button2])) template = templates.GenericTemplate( elements=my_elements) attachment = attachments.TemplateAttachment( template=template) message = messages.Message( attachment=attachment) request = messages.MessageRequest( recipient, message) messenger.send(request) if x['message'].get('attachments'): for att in x['message'].get('attachments'): pass elif x.get('postback').get('payload') == 'BUY': quick_reply = quick_replies.QuickReplyItem( content_type='text', title='LaptopMart', payload='page_1') quick_reply2 = quick_replies.QuickReplyItem( content_type='text', title='BikeMart', payload='page_2') replies = quick_replies.QuickReplies( quick_replies=[quick_reply, quick_reply2]) message = messages.Message( text='Where would you like to shop?', quick_replies=replies) request = messages.MessageRequest(recipient, message) messenger.send(request) pass elif x.get('postback').get( 'payload') == 'USER_DEFINED_PAYLOAD1': message = messages.Message(text='New Message') request = messages.MessageRequest(recipient, message) messenger.send(request) pass elif x.get('postback').get('payload') == 'BUY_1': my_elements = [] id = str(uuid.uuid4()) buy_response = buy('+254720000802', '+254720000800', id) if buy_response.status_code == 202: message = messages.Message( text='Transaction complete') request = messages.MessageRequest( recipient, message) messenger.send(request) template = templates.GenericTemplate( elements=my_elements) attachment = attachments.TemplateAttachment( template=template) message = messages.Message(attachment=attachment) request = messages.MessageRequest( recipient, message) messenger.send(request) else: print buy_response.status_code buy_response = buy('+254720000802', '+254720000800', id) quick_reply3 = quick_replies.QuickReplyItem( content_type='text', title=buy_response.status_code, payload='page_2') except Exception, e: print e.message except Exception, e: print e
data=json.dumps(payload)) return response ACCESS_TOKEN = "" messenger = MessengerClient(access_token=ACCESS_TOKEN) # Send button template web_button = elements.WebUrlButton(title='Show website', url='https://petersapparel.parseapp.com') postback_button = elements.PostbackButton(title='Start chatting', payload='USER_DEFINED_PAYLOAD') template = templates.ButtonTemplate(text='What do you want to do next?', buttons=[web_button, postback_button]) attachment = attachments.TemplateAttachment(template=template) # # Send button template 2 # web_button2 = elements.WebUrlButton( # title="I'm a buyer", # url='https://petersapparel.parseapp.com' # ) # postback_button2 = elements.PostbackButton( # title='I have something to sell', # payload='USER_DEFINED_PAYLOAD' # ) # template2 = templates.ButtonTemplate( # text='Which are you?', # buttons=[ # web_button2, postback_button2
def sendFBMessage(chat_id,from_user,msgs,suggested_responses=[],msg_type=None,extras=[]): # TODO: if suggested_response, create object to handle choices # if suggested responses > 3 recipient = fbmessages.Recipient(recipient_id=from_user) if msg_type == 'text': if not suggested_responses: text_messages = msgs else: text_messages = msgs[:-1] for msg in text_messages: message = fbmessages.Message(text=msg) request = fbmessages.MessageRequest(recipient, message) fbmessenger.send(request) if suggested_responses: buttons = [] for suggested_response in suggested_responses: buttons.append(elements.PostbackButton( title=suggested_response, payload=suggested_response )) template = templates.ButtonTemplate( text=msgs[-1], buttons=buttons ) attachment = attachments.TemplateAttachment(template=template) message = fbmessages.Message(attachment=attachment) request = fbmessages.MessageRequest(recipient, message) fbmessenger.send(request) if msg_type == 'image': elmnts = [] for i, url in enumerate(msgs): buttons = [] buttons.append(elements.PostbackButton( title="I like this one", payload="I like number {}st".format(i+1) )) # WEBSITE DOWN # buttons.append(elements.WebUrlButton( # title="See on gofind site", # url="gofindfashion.com/?{}".format(url) # )) buttons.append(elements.PostbackButton( title="See more results", payload="See more like this" )) title = suggested_responses[i] element = elements.Element(title=title[:43],image_url=url,buttons=buttons) elmnts.append(element) template = templates.GenericTemplate(elements=elmnts) attachment = attachments.TemplateAttachment(template=template) message = fbmessages.Message(attachment=attachment) request = fbmessages.MessageRequest(recipient, message) fbmessenger.send(request) if msg_type == 'link': for i, url in enumerate(msgs): elmnts = [] buttons = [] buttons.append(elements.WebUrlButton( title="Go to store", url=url )) buttons.append(elements.PostbackButton( title="Search with this pic", payload="Search with this pic" )) buttons.append(elements.PostbackButton( title="See more results", payload="See more like this" )) title = suggested_responses[i] element = elements.Element(title=title[:43],image_url=extras[i],buttons=buttons) elmnts.append(element) template = templates.GenericTemplate(elements=elmnts) attachment = attachments.TemplateAttachment(template=template) message = fbmessages.Message(attachment=attachment) request = fbmessages.MessageRequest(recipient, message) fbmessenger.send(request)