SlideShare a Scribd company logo
@tompaulus 
Prank Calling Your Friends - CodeDay Workshop
@tompaulus
@tompaulus 
Setting up your App 
Optional, Leave it blank for now
@tompaulus 
Setting up your App
@tompaulus 
Install FancyHands SDK - Python 
sudo easy_install pip 
sudo pip install fancyhands 
git clone https://github.com/fancyhands/fancyhands-python.git 
dir fancyhands-python 
python setup.py install
HelloWorld.py 
from fancyhands import FancyhandsClient 
from datetime import datetime, timedelta 
api_key = '<CONSUMER KEY>' 
secret = '<CONSUMER SECRET>' 
client = FancyhandsClient(api_key, secret) 
""" Client is our interface to FancyHands Once we have initialized it, it will remember who we are thought the file """ 
@tompaulus 
def reddit(phone_number): 
""" 
Get the top story off of or Reddit and have phone_number be called telling them the title 
:param phone_number: The Phone Number of who should be called 
:type phone_number: str 
""" 
title = "Let me know what's new on the internet!" 
description = "Go to Reddit, and find the title of the top story. Call me at %s and tell me that title." 
# %s will be replaced with a phone number when we use the variable in a function call 
bid = 1.50 
expiration_date = datetime.now() + timedelta(1) 
client.standard_create(title, description % phone_number, bid, expiration_date) 
return True 
reddit("(111) 111-1111")
@tompaulus 
Let’s Try It!
Response.py 
@tompaulus 
def call_and_react(phone_number): 
""" 
Call phone_number and prank them, then get their reaction 
:param phone_number: The Phone Number of who should be called 
:type phone_number: str 
""" 
title = "Prank call my friend!" 
description = "Call %s. Ask if their refrigerator is running."  
"When they say 'yes', tell them 'Well you better go catch it!'." 
bid = 3.00 
expiration_date = datetime.now() + timedelta(1) 
custom_fields = [ 
{ 
'label': 'Response', 
'type': 'textarea', 
'description': 'Their response to the prank.', 
'order': 1, 
"required": True 
} 
] 
client.custom_create(title, description % phone_number, bid, expiration_date, custom_fields) 
return True 
call_and_react("(555) 555-555")
WebHooks are an HTTP POST callback request sent to URL of a user's choice in 
response to some event occurring. They offer simple and effective server to server 
@tompaulus 
communication without long running connections. 
RequestBin is a service which receives all incoming requests 
and logs them for your later review. We’ll use it to quickly see 
what sort of data Fancy Hands gives our app. 
http://requestb.in/
@tompaulus
@tompaulus 
Let’s Try It!
https://studentrnd.org/build/prank-calling-friends-with-fancy-hands 
@tompaulus
Slides: http://tpaulus.github.io/CD-FancyHands/ 
Code: https://github.com/tpaulus/CD-FancyHands 
@tompaulus

More Related Content

More from Tom Paulus

Honor113 - Chinese Business
Honor113 - Chinese BusinessHonor113 - Chinese Business
Honor113 - Chinese Business
Tom Paulus
 
Head First: Diving into Drones
Head First: Diving into DronesHead First: Diving into Drones
Head First: Diving into Drones
Tom Paulus
 
Intro to MultiCopters
Intro to MultiCoptersIntro to MultiCopters
Intro to MultiCopters
Tom Paulus
 
Getting Started with Raspberry Pi - USC 2013
Getting Started with Raspberry Pi - USC 2013Getting Started with Raspberry Pi - USC 2013
Getting Started with Raspberry Pi - USC 2013
Tom Paulus
 
Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013Tom Paulus
 
Getting Started with Raspberry Pi - DCC 2013.1
Getting Started with Raspberry Pi - DCC 2013.1Getting Started with Raspberry Pi - DCC 2013.1
Getting Started with Raspberry Pi - DCC 2013.1
Tom Paulus
 

More from Tom Paulus (6)

Honor113 - Chinese Business
Honor113 - Chinese BusinessHonor113 - Chinese Business
Honor113 - Chinese Business
 
Head First: Diving into Drones
Head First: Diving into DronesHead First: Diving into Drones
Head First: Diving into Drones
 
Intro to MultiCopters
Intro to MultiCoptersIntro to MultiCopters
Intro to MultiCopters
 
Getting Started with Raspberry Pi - USC 2013
Getting Started with Raspberry Pi - USC 2013Getting Started with Raspberry Pi - USC 2013
Getting Started with Raspberry Pi - USC 2013
 
Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013
 
Getting Started with Raspberry Pi - DCC 2013.1
Getting Started with Raspberry Pi - DCC 2013.1Getting Started with Raspberry Pi - DCC 2013.1
Getting Started with Raspberry Pi - DCC 2013.1
 

Recently uploaded

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 

Recently uploaded (20)

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 

CodeDay - Fancyhands Workshop

  • 1. @tompaulus Prank Calling Your Friends - CodeDay Workshop
  • 3. @tompaulus Setting up your App Optional, Leave it blank for now
  • 5. @tompaulus Install FancyHands SDK - Python sudo easy_install pip sudo pip install fancyhands git clone https://github.com/fancyhands/fancyhands-python.git dir fancyhands-python python setup.py install
  • 6. HelloWorld.py from fancyhands import FancyhandsClient from datetime import datetime, timedelta api_key = '<CONSUMER KEY>' secret = '<CONSUMER SECRET>' client = FancyhandsClient(api_key, secret) """ Client is our interface to FancyHands Once we have initialized it, it will remember who we are thought the file """ @tompaulus def reddit(phone_number): """ Get the top story off of or Reddit and have phone_number be called telling them the title :param phone_number: The Phone Number of who should be called :type phone_number: str """ title = "Let me know what's new on the internet!" description = "Go to Reddit, and find the title of the top story. Call me at %s and tell me that title." # %s will be replaced with a phone number when we use the variable in a function call bid = 1.50 expiration_date = datetime.now() + timedelta(1) client.standard_create(title, description % phone_number, bid, expiration_date) return True reddit("(111) 111-1111")
  • 8. Response.py @tompaulus def call_and_react(phone_number): """ Call phone_number and prank them, then get their reaction :param phone_number: The Phone Number of who should be called :type phone_number: str """ title = "Prank call my friend!" description = "Call %s. Ask if their refrigerator is running." "When they say 'yes', tell them 'Well you better go catch it!'." bid = 3.00 expiration_date = datetime.now() + timedelta(1) custom_fields = [ { 'label': 'Response', 'type': 'textarea', 'description': 'Their response to the prank.', 'order': 1, "required": True } ] client.custom_create(title, description % phone_number, bid, expiration_date, custom_fields) return True call_and_react("(555) 555-555")
  • 9. WebHooks are an HTTP POST callback request sent to URL of a user's choice in response to some event occurring. They offer simple and effective server to server @tompaulus communication without long running connections. RequestBin is a service which receives all incoming requests and logs them for your later review. We’ll use it to quickly see what sort of data Fancy Hands gives our app. http://requestb.in/
  • 13. Slides: http://tpaulus.github.io/CD-FancyHands/ Code: https://github.com/tpaulus/CD-FancyHands @tompaulus