• 230 likes • 510 Views
ORDER PIZZA. ROB – GONZEE.TV. HI. I’M ROB ! (yet again). USEFULNESS OF SOFTWARE. PIZZA POWER. /pizza. >. WEB STANDARDS FTW!. >. I H8 ATT. >. :(. ORDER PIZZA. (totally demoing theapp ). ORDER PIZZA. Resources Onclick events Intro to TwiML CODE. easy buddy.
E N D
ORDER PIZZA ROB – GONZEE.TV
/pizza >
I H8 ATT >
ORDER PIZZA (totally demoing theapp)
ORDER PIZZA • Resources • Onclick events • Intro to TwiML • CODE easy buddy
GET MACGUYVER ON IT • Onclick events - http://developer.boxee.tv/Python_API#Examples • Twilio PHP library - http://www.twilio.com/docs/libraries/ • Yelp Python module - http://code.google.com/p/yelp-python-client/
YELP CODE results = yelp.ReviewSearchApi(client_key="e482aAygGs2SeCGxlwQg3w", output="json").by_location(zipcode, term="pizza", radius="1") rows = results["businesses"] container = mc.ListItems() for row in rows: newitem = mc.ListItem(mc.ListItem.MEDIA_UNKNOWN) newitem.SetLabel( str(row["name"]) ) newitem.SetThumbnail( str(row["rating_img_url"]) ) newitem.SetProperty("address1", str(row["address1"]) ) newitem.SetProperty("city", str(row["city"]) ) newitem.SetProperty("state", str(row["state"]) ) newitem.SetProperty("avg_rating", str(row["avg_rating"])) business_phone = "(" + str(row["phone"][0:3]) + ")" + str(row["phone"][3:6]) + "-" + str(row["phone"][6:10]) newitem.SetProperty("phone", business_phone) newitem.SetProperty("int_phone", str(row["phone"])) newitem.SetPath(str(row["name"])) if row["is_closed"] == True: newitem.SetProperty("closed", "No") else: newitem.SetProperty("closed", "Yes") container.append(newitem) list = mc.GetWindow(14000).GetList(111).SetItems(container)
EVENT n = mc.GetWindow(14000).GetList(111).GetFocusedItem() listitem = mc.GetWindow(14000).GetList(111).GetItem(n) pizza_number = listitem.GetProperty("int_phone") url = "http://apps.gonzee.tv/orderpizza/makecall.php" values = {'called' : telephone, 'outgoing' : pizza_number} data = urllib.urlencode(values) req = urllib2.Request(url, data) response = urllib2.urlopen(req) mc.ShowDialogOk("Calling...", "We are calling this pizza place on your behalf. Expect a call shortly.")
SERVER-SIDE – TWILIO LIBRARY require "twilio.php"; /* Twilio REST API version */ $ApiVersion = "2008-08-01"; /* Set our AccountSid and AuthToken */ $AccountSid = “INSERTACCOUNTSID"; $AuthToken = “INSERTAUTHTOKEN"; /* Outgoing Caller ID you have previously validated with Twilio */ $number = ‘INSERTPHONENUMBER'; /* Outgoing Number you wish to call */ if (!isset($_REQUEST['outgoing'])) { $err = urlencode("Must specify outgoing phone number."); header("Location: index.php?msg=$err"); die; } /* Instantiate a new Twilio Rest Client */ $client = new TwilioRestClient($AccountSid, $AuthToken);
MAKING THE CALL /* make Twilio REST request to initiate outgoing call */ $response = $client->request("/$ApiVersion/Accounts/$AccountSid/Calls", "POST", array( "Caller" => $number, "Called" => $_REQUEST['called'], "Url" => $url . 'callback.php?number=' . $_REQUEST['outgoing'] ));
CONNECTING TO PIZZA <?php header("content-type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; ?> <Response> <Say>Connecting you to pizza - please hold.</Say> <Dial><?php echo $_REQUEST['number']?></Dial> </Response>
10001110111 • Downloadhttp://dir.gonzee.tv/download/tv.gonzee.orderpizza.zip • Checkoutsvn checkout http://twilio-boxee-hackathon.googlecode.com/svn/trunk/orderpizza/twilio-boxee-hackathon-read-only