際際滷

際際滷Share a Scribd company logo
ORDER PIZZA
ROB  GONZEE.TV
Order pizza from Boxee
IM 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
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/
HOW IT WORKS
SUPER SMASH!
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)
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/Cal
ls",
"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>
Order pizza from Boxee
QUESTIONS?
10001110111
 Download
http://dir.gonzee.tv/download/tv.gonzee.orderpizza.zip
 Checkout
svn checkout http://twilio-boxee-
hackathon.googlecode.com/svn/trunk/orderpiz
za/ twilio-boxee-hackathon-read-only
KTHX

More Related Content

Order pizza from Boxee

  • 1. ORDER PIZZA ROB GONZEE.TV
  • 3. IM ROB! (yet again)
  • 9. :(
  • 11. ORDER PIZZA Resources Onclick events Intro to TwiML CODE easy buddy
  • 12. 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/
  • 15. 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)
  • 16. 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.")
  • 17. 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);
  • 18. MAKING THE CALL /* make Twilio REST request to initiate outgoing call */ $response = $client- >request("/$ApiVersion/Accounts/$AccountSid/Cal ls", "POST", array( "Caller" => $number, "Called" => $_REQUEST['called'], "Url" => $url . 'callback.php?number=' . $_REQUEST['outgoing'] ));
  • 19. 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>
  • 22. 10001110111 Download http://dir.gonzee.tv/download/tv.gonzee.orderpizza.zip Checkout svn checkout http://twilio-boxee- hackathon.googlecode.com/svn/trunk/orderpiz za/ twilio-boxee-hackathon-read-only
  • 23. KTHX