1
0
mirror of https://github.com/arduino/Arduino.git synced 2024-12-01 12:24:14 +01:00

updated temboo examples

This commit is contained in:
Federico Fissore 2013-07-08 15:09:09 +02:00
parent 21ca1cd9c5
commit e6b311b226
12 changed files with 174 additions and 404 deletions

View File

@ -18,10 +18,7 @@
*/
#include <Bridge.h>
#include <Console.h>
#include <FileIO.h>
#include <HttpClient.h>
#include <Process.h>
#include <Temboo.h>
#include "TembooAccount.h" // contains Temboo account information
// as described in the footer comment below
@ -29,9 +26,10 @@
// the address for which a weather forecast will be retrieved
String ADDRESS_FOR_FORECAST = "104 Franklin St., New York NY 10013";
int numRuns = 0; // execution count, so that this doesn't run forever
int numRuns = 1; // execution count, so that this doesn't run forever
int maxRuns = 10; // max number of times the Yahoo WeatherByAddress Choreo should be run
void setup() {
Serial.begin(9600);
@ -39,48 +37,50 @@ void setup() {
delay(4000);
while(!Serial);
Bridge.begin();
}
void loop()
{
// while we haven't reached the max number of runs...
if (numRuns < maxRuns) {
if (numRuns <= maxRuns) {
// print status
Serial.println("Running GetWeatherByAddress - Run #" + String(numRuns++) + "...");
// we need a Process object to send a Choreo request to Temboo
Process GetWeatherByAddressChoreo;
// create a TembooChoreo object to send a Choreo request to Temboo
TembooChoreo GetWeatherByAddressChoreo;
// invoke the Temboo client
GetWeatherByAddressChoreo.begin("temboo");
// set Temboo account credentials
GetWeatherByAddressChoreo.addParameter("-a");
GetWeatherByAddressChoreo.addParameter(TEMBOO_ACCOUNT);
GetWeatherByAddressChoreo.addParameter("-u");
GetWeatherByAddressChoreo.addParameter(TEMBOO_APP_KEY_NAME);
GetWeatherByAddressChoreo.addParameter("-p");
GetWeatherByAddressChoreo.addParameter(TEMBOO_APP_KEY);
// identify the Temboo Library choreo to run (Yahoo > Weather > GetWeatherByAddress)
GetWeatherByAddressChoreo.addParameter("-c");
GetWeatherByAddressChoreo.addParameter("/Library/Yahoo/Weather/GetWeatherByAddress");
GetWeatherByAddressChoreo.begin();
// add your temboo account info
GetWeatherByAddressChoreo.setAccountName(TEMBOO_ACCOUNT);
GetWeatherByAddressChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
GetWeatherByAddressChoreo.setAppKey(TEMBOO_APP_KEY);
// set the name of the choreo we want to run
GetWeatherByAddressChoreo.setChoreo("/Library/Yahoo/Weather/GetWeatherByAddress");
// set choreo inputs; in this case, the address for which to retrieve weather data
// the Temboo client provides standardized calls to 100+ cloud APIs
GetWeatherByAddressChoreo.addParameter("-i");
GetWeatherByAddressChoreo.addParameter("Address:" + ADDRESS_FOR_FORECAST);
GetWeatherByAddressChoreo.addInput("Address", ADDRESS_FOR_FORECAST);
// add an output filter to extract the name of the city.
GetWeatherByAddressChoreo.addOutputFilter("city", "/rss/channel/yweather:location/@city", "Response");
// add an output filter to extract the current temperature
GetWeatherByAddressChoreo.addOutputFilter("temperature", "/rss/channel/item/yweather:condition/@temp", "Response");
// add an output filter to extract the date and time of the last report.
GetWeatherByAddressChoreo.addOutputFilter("date", "/rss/channel/item/yweather:condition/@date", "Response");
// run the choreo
GetWeatherByAddressChoreo.run();
// when the choreo results are available, print them to the serial monitor
while(GetWeatherByAddressChoreo.available()) {
// note that in this example, we just print the raw XML response from Yahoo
// see the examples on using Temboo SDK output filters at http://www.temboo.com/arduino
// for information on how to filter this data
char c = GetWeatherByAddressChoreo.read();
Serial.print(c);
}

View File

@ -24,10 +24,7 @@
*/
#include <Bridge.h>
#include <Console.h>
#include <FileIO.h>
#include <HttpClient.h>
#include <Process.h>
#include <Temboo.h>
#include "TembooAccount.h" // contains Temboo account information
// as described in the footer comment below
@ -40,73 +37,59 @@ const String TWITTER_ACCESS_TOKEN_SECRET = "your-twitter-access-token-secret";
const String TWITTER_CONSUMER_KEY = "your-twitter-consumer-key";
const String TWITTER_CONSUMER_SECRET = "your-twitter-consumer-secret";
int numRuns = 1; // execution count, so this sketch doesn't run forever
int maxRuns = 10; // the max number of times the Twitter HomeTimeline Choreo should run
int numRuns = 1; // execution count, so this doesn't run forever
int maxRuns = 10; // the max number of times the Twitter HomeTimeline Choreo should run
void setup() {
Serial.begin(9600);
// for debugging, wait until a serial console is connected
// For debugging, wait until a serial console is connected.
delay(4000);
while(!Serial);
Bridge.begin();
}
void loop()
{
// while we haven't reached the max number of runs...
if (numRuns <= maxRuns) {
// print status
Serial.println("Running ReadATweet - Run #" + String(numRuns++) + "...");
// define the Process that will be used to call the "temboo" client
Process HomeTimelineChoreo;
Serial.println("Running ReadATweet - Run #" + String(numRuns++));
// invoke the Temboo client
HomeTimelineChoreo.begin("temboo");
TembooChoreo HomeTimelineChoreo;
// invoke the Temboo client.
// NOTE that the client must be reinvoked, and repopulated with
// appropriate arguments, each time its run() method is called.
HomeTimelineChoreo.begin();
// set Temboo account credentials
HomeTimelineChoreo.addParameter("-a");
HomeTimelineChoreo.addParameter(TEMBOO_ACCOUNT);
HomeTimelineChoreo.addParameter("-u");
HomeTimelineChoreo.addParameter(TEMBOO_APP_KEY_NAME);
HomeTimelineChoreo.addParameter("-p");
HomeTimelineChoreo.addParameter(TEMBOO_APP_KEY);
// tell the Temboo client which Choreo to run (Twitter > Timelines > HomeTimeline)
HomeTimelineChoreo.addParameter("-c");
HomeTimelineChoreo.addParameter("/Library/Twitter/Timelines/HomeTimeline");
HomeTimelineChoreo.setAccountName(TEMBOO_ACCOUNT);
HomeTimelineChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
HomeTimelineChoreo.setAppKey(TEMBOO_APP_KEY);
// tell the Temboo client which Choreo to run (Twitter > Timelines > HomeTimeline)
HomeTimelineChoreo.setChoreo("/Library/Twitter/Timelines/HomeTimeline");
// set the required choreo inputs
// see https://www.temboo.com/library/Library/Twitter/Timelines/HomeTimeline/
// for complete details about the inputs for this Choreo
HomeTimelineChoreo.addParameter("-i");
HomeTimelineChoreo.addParameter("Count:1"); // the max number of Tweets to return from each request
// add the Twitter account information
HomeTimelineChoreo.addParameter("-i");
HomeTimelineChoreo.addParameter("AccessToken:" + TWITTER_ACCESS_TOKEN);
HomeTimelineChoreo.addParameter("-i");
HomeTimelineChoreo.addParameter("AccessTokenSecret:" + TWITTER_ACCESS_TOKEN_SECRET);
HomeTimelineChoreo.addParameter("-i");
HomeTimelineChoreo.addParameter("ConsumerSecret:" + TWITTER_CONSUMER_SECRET);
HomeTimelineChoreo.addParameter("-i");
HomeTimelineChoreo.addParameter("ConsumerKey:" + TWITTER_CONSUMER_KEY);
HomeTimelineChoreo.addInput("Count", "1"); // the max number of Tweets to return from each request
HomeTimelineChoreo.addInput("AccessToken", TWITTER_ACCESS_TOKEN);
HomeTimelineChoreo.addInput("AccessTokenSecret", TWITTER_ACCESS_TOKEN_SECRET);
HomeTimelineChoreo.addInput("ConsumerKey", TWITTER_CONSUMER_KEY);
HomeTimelineChoreo.addInput("ConsumerSecret", TWITTER_CONSUMER_SECRET);
// next, we'll define two output filters that let us specify the
// elements of the response from Twitter that we want to receive.
// see the examples at http://www.temboo.com/arduino
// for more on using output filters
// we want the text of the tweet
HomeTimelineChoreo.addParameter("-o");
HomeTimelineChoreo.addParameter("tweet:/[1]/text:Response");
HomeTimelineChoreo.addOutputFilter("tweet", "/[1]/text", "Response");
// and the name of the author
HomeTimelineChoreo.addParameter("-o");
HomeTimelineChoreo.addParameter("author:/[1]/user/screen_name:Response");
HomeTimelineChoreo.addOutputFilter("author", "/[1]/user/screen_name", "Response");
// tell the Process to run and wait for the results. The
@ -114,7 +97,7 @@ void loop()
// was able to send our request to the Temboo servers
unsigned int returnCode = HomeTimelineChoreo.run();
// a response code of 0 means success; print the API response
// a response code of 0 means success; print the API response
if(returnCode == 0) {
String author; // a String to hold the tweet author's name
@ -160,30 +143,9 @@ void loop()
}
HomeTimelineChoreo.close();
}
Serial.println("Waiting...");
Serial.println("");
delay(90000); // wait 90 seconds between HomeTimeline calls
}
/*
IMPORTANT NOTE: TembooAccount.h:
TembooAccount.h is a file referenced by this sketch that contains your Temboo account information.
You'll need to edit the placeholder version of TembooAccount.h included with this example sketch,
by inserting your own Temboo account name and app key information. The contents of the file should
look like:
#define TEMBOO_ACCOUNT "myTembooAccountName" // your Temboo account name
#define TEMBOO_APP_KEY_NAME "myFirstApp" // your Temboo app key name
#define TEMBOO_APP_KEY "xxx-xxx-xxx-xx-xxx" // your Temboo app key
You can find your Temboo App Key information on the Temboo website,
under My Account > Application Keys
The same TembooAccount.h file settings can be used for all Temboo SDK sketches.
Keeping your account information in a separate file means you can save it once,
then just distribute the main .ino file without worrying that you forgot to delete your credentials.
*/

View File

@ -25,10 +25,7 @@
*/
#include <Bridge.h>
#include <Console.h>
#include <FileIO.h>
#include <HttpClient.h>
#include <Process.h>
#include <Temboo.h>
#include "TembooAccount.h" // contains Temboo account information
// as described in the footer comment below
@ -43,7 +40,7 @@ const String TWITTER_CONSUMER_KEY = "your-twitter-consumer-key";
const String TWITTER_CONSUMER_SECRET = "your-twitter-consumer-secret";
int numRuns = 1; // execution count, so this sketch doesn't run forever
int maxRuns = 10; // the max number of times the Twitter HomeTimeline Choreo should run
int maxRuns = 3; // the max number of times the Twitter Update Choreo should run
void setup() {
Serial.begin(9600);
@ -61,43 +58,38 @@ void loop()
if (numRuns <= maxRuns) {
Serial.println("Running SendATweet - Run #" + String(numRuns++) + "...");
// define the text of the tweet we want to send
String tweetText("My Arduino Yun has been running for " + String(millis()) + " milliseconds.");
// we need a Process object to send a Choreo request to Temboo
Process StatusesUpdateChoreo;
TembooChoreo StatusesUpdateChoreo;
// invoke the Temboo client
StatusesUpdateChoreo.begin("temboo");
// NOTE that the client must be reinvoked, and repopulated with
// appropriate arguments, each time its run() method is called.
StatusesUpdateChoreo.begin();
// set Temboo account credentials
StatusesUpdateChoreo.addParameter("-a");
StatusesUpdateChoreo.addParameter(TEMBOO_ACCOUNT);
StatusesUpdateChoreo.addParameter("-u");
StatusesUpdateChoreo.addParameter(TEMBOO_APP_KEY_NAME);
StatusesUpdateChoreo.addParameter("-p");
StatusesUpdateChoreo.addParameter(TEMBOO_APP_KEY);
StatusesUpdateChoreo.setAccountName(TEMBOO_ACCOUNT);
StatusesUpdateChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
StatusesUpdateChoreo.setAppKey(TEMBOO_APP_KEY);
// identify the Temboo Library choreo to run (Twitter > Tweets > StatusesUpdate)
StatusesUpdateChoreo.addParameter("-c");
StatusesUpdateChoreo.addParameter("/Library/Twitter/Tweets/StatusesUpdate");
StatusesUpdateChoreo.setChoreo("/Library/Twitter/Tweets/StatusesUpdate");
// set the required choreo inputs
// see https://www.temboo.com/library/Library/Twitter/Tweets/StatusesUpdate/
// for complete details about the inputs for this Choreo
// add the Twitter account information
StatusesUpdateChoreo.addParameter("-i");
StatusesUpdateChoreo.addParameter("AccessToken:" + TWITTER_ACCESS_TOKEN);
StatusesUpdateChoreo.addParameter("-i");
StatusesUpdateChoreo.addParameter("AccessTokenSecret:" + TWITTER_ACCESS_TOKEN_SECRET);
StatusesUpdateChoreo.addParameter("-i");
StatusesUpdateChoreo.addParameter("ConsumerSecret:" + TWITTER_CONSUMER_SECRET);
StatusesUpdateChoreo.addParameter("-i");
StatusesUpdateChoreo.addParameter("ConsumerKey:" + TWITTER_CONSUMER_KEY);
StatusesUpdateChoreo.addInput("AccessToken", TWITTER_ACCESS_TOKEN);
StatusesUpdateChoreo.addInput("AccessTokenSecret", TWITTER_ACCESS_TOKEN_SECRET);
StatusesUpdateChoreo.addInput("ConsumerKey", TWITTER_CONSUMER_KEY);
StatusesUpdateChoreo.addInput("ConsumerSecret", TWITTER_CONSUMER_SECRET);
String tweet("My Arduino Yun has been running for " + String(millis()) + " milliseconds.");
StatusesUpdateChoreo.addParameter("-i");
StatusesUpdateChoreo.addParameter("StatusUpdate:" + tweet);
// and the tweet we want to send
StatusesUpdateChoreo.addInput("StatusUpdate", tweetText);
// tell the Process to run and wait for the results. The
// return code (returnCode) will tell us whether the Temboo client

View File

@ -22,10 +22,7 @@
*/
#include <Bridge.h>
#include <Console.h>
#include <FileIO.h>
#include <HttpClient.h>
#include <Process.h>
#include <Temboo.h>
#include "TembooAccount.h" // contains Temboo account information
// as described in the footer comment below
@ -34,7 +31,7 @@
// Note that for additional security and reusability, you could
// use #define statements to specify these values in a .h file.
// your Gmail address, eg "bob.smith@gmail.com"
// your Gmail username, formatted as a complete email address, eg "bob.smith@gmail.com"
const String GMAIL_USER_NAME = "xxxxxxxxxx";
// your Gmail password
@ -62,50 +59,40 @@ void loop()
if (!success) {
Serial.println("Running SendAnEmail...");
// we need a Process object to send a Choreo request to Temboo
Process SendEmailChoreo;
TembooChoreo SendEmailChoreo;
// invoke the Temboo client
SendEmailChoreo.begin("temboo");
// NOTE that the client must be reinvoked, and repopulated with
// appropriate arguments, each time its run() method is called.
SendEmailChoreo.begin();
// set Temboo account credentials
SendEmailChoreo.addParameter("-a");
SendEmailChoreo.addParameter(TEMBOO_ACCOUNT);
SendEmailChoreo.addParameter("-u");
SendEmailChoreo.addParameter(TEMBOO_APP_KEY_NAME);
SendEmailChoreo.addParameter("-p");
SendEmailChoreo.addParameter(TEMBOO_APP_KEY);
SendEmailChoreo.setAccountName(TEMBOO_ACCOUNT);
SendEmailChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
SendEmailChoreo.setAppKey(TEMBOO_APP_KEY);
// identify the Temboo Library choreo to run (Google > Gmail > SendEmail)
SendEmailChoreo.addParameter("-c");
SendEmailChoreo.addParameter("/Library/Google/Gmail/SendEmail");
SendEmailChoreo.setChoreo("/Library/Google/Gmail/SendEmail");
// set the required choreo inputs
// see https://www.temboo.com/library/Library/Google/Gmail/SendEmail/
// for complete details about the inputs for this Choreo
// the first input is a your Gmail user name.
SendEmailChoreo.addParameter("-i");
SendEmailChoreo.addParameter("Username:" + GMAIL_USER_NAME);
// the first input is your Gmail email address.
SendEmailChoreo.addInput("Username", GMAIL_USER_NAME);
// next is your Gmail password.
SendEmailChoreo.addParameter("-i");
SendEmailChoreo.addParameter("Password:" + GMAIL_PASSWORD);
SendEmailChoreo.addInput("Password", GMAIL_PASSWORD);
// who to send the email to
SendEmailChoreo.addParameter("-i");
SendEmailChoreo.addParameter("ToAddress:" + TO_EMAIL_ADDRESS);
SendEmailChoreo.addInput("ToAddress", TO_EMAIL_ADDRESS);
// then a subject line
SendEmailChoreo.addParameter("-i");
SendEmailChoreo.addParameter("Subject:ALERT: Greenhouse Temperature");
// next comes the message body, the main content of the email
SendEmailChoreo.addParameter("-i");
SendEmailChoreo.addParameter("MessageBody:Hey! The greenhouse is too cold!");
SendEmailChoreo.addInput("Subject", "ALERT: Greenhouse Temperature");
// tell the Process to run and wait for the results. The
// next comes the message body, the main content of the email
SendEmailChoreo.addInput("MessageBody", "Hey! The greenhouse is too cold!");
// tell the Choreo to run and wait for the results. The
// return code (returnCode) will tell us whether the Temboo client
// was able to send our request to the Temboo servers
unsigned int returnCode = SendEmailChoreo.run();

View File

@ -2,4 +2,3 @@
#define TEMBOO_APP_KEY_NAME "myFirstApp" // your Temboo app key name
#define TEMBOO_APP_KEY "xxx-xxx-xxx-xx-xxx" // your Temboo app key

View File

@ -31,10 +31,7 @@
*/
#include <Bridge.h>
#include <Console.h>
#include <FileIO.h>
#include <HttpClient.h>
#include <Process.h>
#include <Temboo.h>
#include "TembooAccount.h" // contains Temboo account information
// as described in the footer comment below
@ -77,46 +74,39 @@ void loop()
Serial.println("Running SendAnSMS...");
// we need a Process object to send a Choreo request to Temboo
Process SendSMSChoreo;
TembooChoreo SendSMSChoreo;
// invoke the Temboo client
SendSMSChoreo.begin("temboo");
// NOTE that the client must be reinvoked and repopulated with
// appropriate arguments each time its run() method is called.
SendSMSChoreo.begin();
// set Temboo account credentials
SendSMSChoreo.addParameter("-a");
SendSMSChoreo.addParameter(TEMBOO_ACCOUNT);
SendSMSChoreo.addParameter("-u");
SendSMSChoreo.addParameter(TEMBOO_APP_KEY_NAME);
SendSMSChoreo.addParameter("-p");
SendSMSChoreo.addParameter(TEMBOO_APP_KEY);
SendSMSChoreo.setAccountName(TEMBOO_ACCOUNT);
SendSMSChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
SendSMSChoreo.setAppKey(TEMBOO_APP_KEY);
// identify the Temboo Library choreo to run (Twilio > SMSMessages > SendSMS)
SendSMSChoreo.addParameter("-c");
SendSMSChoreo.addParameter("/Library/Twilio/SMSMessages/SendSMS");
SendSMSChoreo.setChoreo("/Library/Twilio/SMSMessages/SendSMS");
// set the required choreo inputs
// see https://www.temboo.com/library/Library/Twilio/SMSMessages/SendSMS/
// for complete details about the inputs for this Choreo
// the first input is a your AccountSID
SendSMSChoreo.addParameter("-i");
SendSMSChoreo.addParameter("AccountSID:" + TWILIO_ACCOUNT_SID);
SendSMSChoreo.addInput("AccountSID", TWILIO_ACCOUNT_SID);
// next is your Auth Token
SendSMSChoreo.addParameter("-i");
SendSMSChoreo.addParameter("AuthToken:" + TWILIO_AUTH_TOKEN);
SendSMSChoreo.addInput("AuthToken", TWILIO_AUTH_TOKEN);
// next is your Twilio phone number
SendSMSChoreo.addParameter("-i");
SendSMSChoreo.addParameter("From:" + TWILIO_NUMBER);
SendSMSChoreo.addInput("From", TWILIO_NUMBER);
// next, what number to send the SMS to
SendSMSChoreo.addParameter("-i");
SendSMSChoreo.addParameter("To:" + RECIPIENT_NUMBER);
SendSMSChoreo.addInput("To", RECIPIENT_NUMBER);
// finally, the text of the message to send
SendSMSChoreo.addParameter("-i");
SendSMSChoreo.addParameter("Body:Hey, there! This is a message from your Arduino Yun!");
SendSMSChoreo.addInput("Body", "Hey, there! This is a message from your Arduino Yun!");
// tell the Process to run and wait for the results. The
// return code (returnCode) will tell us whether the Temboo client

View File

@ -37,10 +37,7 @@
*/
#include <Bridge.h>
#include <Console.h>
#include <FileIO.h>
#include <HttpClient.h>
#include <Process.h>
#include <Temboo.h>
#include "TembooAccount.h" // contains Temboo account information,
// as described in the footer comment below
@ -97,39 +94,34 @@ void loop()
Serial.println("Appending value to spreadsheet...");
// we need a Process object to send a Choreo request to Temboo
Process AppendRowChoreo;
TembooChoreo AppendRowChoreo;
// invoke the Temboo client
AppendRowChoreo.begin("temboo");
// NOTE that the client must be reinvoked and repopulated with
// appropriate arguments each time its run() method is called.
AppendRowChoreo.begin();
// set Temboo account credentials
AppendRowChoreo.addParameter("-a");
AppendRowChoreo.addParameter(TEMBOO_ACCOUNT);
AppendRowChoreo.addParameter("-u");
AppendRowChoreo.addParameter(TEMBOO_APP_KEY_NAME);
AppendRowChoreo.addParameter("-p");
AppendRowChoreo.addParameter(TEMBOO_APP_KEY);
AppendRowChoreo.setAccountName(TEMBOO_ACCOUNT);
AppendRowChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
AppendRowChoreo.setAppKey(TEMBOO_APP_KEY);
// identify the Temboo Library choreo to run (Google > Spreadsheets > AppendRow)
AppendRowChoreo.addParameter("-c");
AppendRowChoreo.addParameter("/Library/Google/Spreadsheets/AppendRow");
AppendRowChoreo.setChoreo("/Library/Google/Spreadsheets/AppendRow");
// set the required Choreo inputs
// see https://www.temboo.com/library/Library/Google/Spreadsheets/AppendRow/
// for complete details about the inputs for this Choreo
// your Google username (usually your email address)
AppendRowChoreo.addParameter("-i");
AppendRowChoreo.addParameter("Username:" + GOOGLE_USERNAME);
AppendRowChoreo.addInput("Username", GOOGLE_USERNAME);
// your Google account password
AppendRowChoreo.addParameter("-i");
AppendRowChoreo.addParameter("Password:" + GOOGLE_PASSWORD);
AppendRowChoreo.addInput("Password", GOOGLE_PASSWORD);
// the title of the spreadsheet you want to append to
// NOTE: substitute your own value, retaining the "SpreadsheetTitle:" prefix.
AppendRowChoreo.addParameter("-i");
AppendRowChoreo.addParameter("SpreadsheetTitle:" + SPREADSHEET_TITLE);
AppendRowChoreo.addInput("SpreadsheetTitle", SPREADSHEET_TITLE);
// convert the time and sensor values to a comma separated string
String rowData(now);
@ -137,8 +129,7 @@ void loop()
rowData += sensorValue;
// add the RowData input item
AppendRowChoreo.addParameter("-i");
AppendRowChoreo.addParameter("RowData:" + rowData);
AppendRowChoreo.addInput("RowData", rowData);
// run the Choreo and wait for the results
// The return code (returnCode) will indicate success or failure

View File

@ -20,10 +20,7 @@
*/
#include <Bridge.h>
#include <Console.h>
#include <FileIO.h>
#include <HttpClient.h>
#include <Process.h>
#include <Temboo.h>
#include "TembooAccount.h" // contains Temboo account information
// as described in the footer comment below
@ -51,35 +48,30 @@ void loop()
Serial.println("Running ToxicFacilitiesSearch - Run #" + String(numRuns++) + "...");
// we need a Process object to send a Choreo request to Temboo
Process FacilitiesSearchByZipChoreo;
TembooChoreo FacilitiesSearchByZipChoreo;
// invoke the Temboo client
FacilitiesSearchByZipChoreo.begin("temboo");
// NOTE that the client must be reinvoked and repopulated with
// appropriate arguments each time its run() method is called.
FacilitiesSearchByZipChoreo.begin();
// set Temboo account credentials
FacilitiesSearchByZipChoreo.addParameter("-a");
FacilitiesSearchByZipChoreo.addParameter(TEMBOO_ACCOUNT);
FacilitiesSearchByZipChoreo.addParameter("-u");
FacilitiesSearchByZipChoreo.addParameter(TEMBOO_APP_KEY_NAME);
FacilitiesSearchByZipChoreo.addParameter("-p");
FacilitiesSearchByZipChoreo.addParameter(TEMBOO_APP_KEY);
FacilitiesSearchByZipChoreo.setAccountName(TEMBOO_ACCOUNT);
FacilitiesSearchByZipChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
FacilitiesSearchByZipChoreo.setAppKey(TEMBOO_APP_KEY);
// identify the Temboo Library choreo to run (EnviroFacts > Toxins > FacilitiesSearchByZip)
FacilitiesSearchByZipChoreo.addParameter("-c");
FacilitiesSearchByZipChoreo.addParameter("/Library/EnviroFacts/Toxins/FacilitiesSearchByZip");
FacilitiesSearchByZipChoreo.setChoreo("/Library/EnviroFacts/Toxins/FacilitiesSearchByZip");
// set choreo inputs; in this case, the US zip code for which to retrieve toxin release data
// the Temboo client provides standardized calls to 100+ cloud APIs
FacilitiesSearchByZipChoreo.addParameter("-i");
FacilitiesSearchByZipChoreo.addParameter("Zip:" + US_ZIP_CODE);
FacilitiesSearchByZipChoreo.addInput("Zip", US_ZIP_CODE);
// specify two output filters, to help simplify the Envirofacts API results.
// see the tutorials on using Temboo SDK output filters at http://www.temboo.com/arduino
FacilitiesSearchByZipChoreo.addParameter("-o");
FacilitiesSearchByZipChoreo.addParameter("fac:FACILITY_NAME:Response");
FacilitiesSearchByZipChoreo.addOutputFilter("fac", "FACILITY_NAME", "Response");
FacilitiesSearchByZipChoreo.addParameter("-o");
FacilitiesSearchByZipChoreo.addParameter("addr:STREET_ADDRESS:Response");
FacilitiesSearchByZipChoreo.addOutputFilter("addr", "STREET_ADDRESS", "Response");
// run the choreo
unsigned int returnCode = FacilitiesSearchByZipChoreo.run();

View File

@ -24,10 +24,7 @@
*/
#include <Bridge.h>
#include <Console.h>
#include <FileIO.h>
#include <HttpClient.h>
#include <Process.h>
#include <Temboo.h>
#include "TembooAccount.h" // contains Temboo account information,
// as described in the footer comment below
@ -40,7 +37,7 @@
const String FACEBOOK_ACCESS_TOKEN = "xxxxxxxxxx";
int numRuns = 0; // execution count, so this sketch doesn't run forever
int numRuns = 1; // execution count, so this sketch doesn't run forever
int maxRuns = 10; // the max number of times the Facebook SetStatus Choreo should run
void setup() {
@ -54,7 +51,7 @@ void setup() {
void loop() {
// while we haven't reached the max number of runs...
if (numRuns < maxRuns) {
if (numRuns <= maxRuns) {
// print status
Serial.println("Running UpdateFacebookStatus - Run #" + String(numRuns++) + "...");
@ -64,31 +61,27 @@ void loop() {
String statusMsg = "My Arduino Yun has been running for " + String(millis()) + " milliseconds!";
// define the Process that will be used to call the "temboo" client
Process SetStatusChoreo;
TembooChoreo SetStatusChoreo;
// invoke the Temboo client
SetStatusChoreo.begin("temboo");
// NOTE that the client must be reinvoked and repopulated with
// appropriate arguments each time its run() method is called.
SetStatusChoreo.begin();
// set Temboo account credentials
SetStatusChoreo.addParameter("-a");
SetStatusChoreo.addParameter(TEMBOO_ACCOUNT);
SetStatusChoreo.addParameter("-u");
SetStatusChoreo.addParameter(TEMBOO_APP_KEY_NAME);
SetStatusChoreo.addParameter("-p");
SetStatusChoreo.addParameter(TEMBOO_APP_KEY);
SetStatusChoreo.setAccountName(TEMBOO_ACCOUNT);
SetStatusChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
SetStatusChoreo.setAppKey(TEMBOO_APP_KEY);
// tell the Temboo client which Choreo to run (Facebook > Publishing > SetStatus)
SetStatusChoreo.addParameter("-c");
SetStatusChoreo.addParameter("/Library/Facebook/Publishing/SetStatus");
SetStatusChoreo.setChoreo("/Library/Facebook/Publishing/SetStatus");
// set the required choreo inputs
// see https://www.temboo.com/library/Library/Facebook/Publishing/SetStatus/
// for complete details about the inputs for this Choreo
SetStatusChoreo.addParameter("-i");
SetStatusChoreo.addParameter("AccessToken:" + FACEBOOK_ACCESS_TOKEN);
SetStatusChoreo.addParameter("-i");
SetStatusChoreo.addParameter("Message:" + statusMsg);
SetStatusChoreo.addInput("AccessToken", FACEBOOK_ACCESS_TOKEN);
SetStatusChoreo.addInput("Message", statusMsg);
// tell the Process to run and wait for the results. The

View File

@ -25,10 +25,7 @@
*/
#include <Bridge.h>
#include <Console.h>
#include <FileIO.h>
#include <HttpClient.h>
#include <Process.h>
#include <Temboo.h>
#include "TembooAccount.h" // contains Temboo account information
// as described in the footer comment below
@ -76,49 +73,40 @@ void loop()
Serial.println("Uploading data to Dropbox...");
// we need a Process object to send a Choreo request to Temboo
Process UploadFileChoreo;
TembooChoreo UploadFileChoreo;
// invoke the Temboo client
UploadFileChoreo.begin("temboo");
// NOTE that the client must be reinvoked and repopulated with
// appropriate arguments each time its run() method is called.
UploadFileChoreo.begin();
// set Temboo account credentials
UploadFileChoreo.addParameter("-a");
UploadFileChoreo.addParameter(TEMBOO_ACCOUNT);
UploadFileChoreo.addParameter("-u");
UploadFileChoreo.addParameter(TEMBOO_APP_KEY_NAME);
UploadFileChoreo.addParameter("-p");
UploadFileChoreo.addParameter(TEMBOO_APP_KEY);
UploadFileChoreo.setAccountName(TEMBOO_ACCOUNT);
UploadFileChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
UploadFileChoreo.setAppKey(TEMBOO_APP_KEY);
// identify the Temboo Library choreo to run (Dropbox > FilesAndMetadata > UploadFile)
UploadFileChoreo.addParameter("-c");
UploadFileChoreo.addParameter("/Library/Dropbox/FilesAndMetadata/UploadFile");
UploadFileChoreo.setChoreo("/Library/Dropbox/FilesAndMetadata/UploadFile");
// set the required choreo inputs
// see https://www.temboo.com/library/Library/Dropbox/FilesAndMetadata/UploadFile/
// for complete details about the inputs for this Choreo
// first specify the name of the file to create/update on Dropbox
UploadFileChoreo.addParameter("-i");
UploadFileChoreo.addParameter("FileName:ArduinoTest.txt");
UploadFileChoreo.addInput("FileName", "ArduinoTest.txt");
// next, the root folder on Dropbox relative to which the file path is specified.
// unless you're using an in-production Dropbox app, this should be left as "sandbox"
UploadFileChoreo.addParameter("-i");
UploadFileChoreo.addParameter("Root:sandbox");
UploadFileChoreo.addInput("Root","sandbox");
// next, the Base64 encoded file data to upload
UploadFileChoreo.addParameter("-i");
UploadFileChoreo.addParameter("FileContents:" + base64EncodedData);
UploadFileChoreo.addInput("FileContents", base64EncodedData);
// finally, the Dropbox OAuth credentials defined above
UploadFileChoreo.addParameter("-i");
UploadFileChoreo.addParameter("AppSecret:" + DROPBOX_APP_SECRET);
UploadFileChoreo.addParameter("-i");
UploadFileChoreo.addParameter("AccessToken:" + DROPBOX_ACCESS_TOKEN);
UploadFileChoreo.addParameter("-i");
UploadFileChoreo.addParameter("AccessTokenSecret:" + DROPBOX_ACCESS_TOKEN_SECRET);
UploadFileChoreo.addParameter("-i");
UploadFileChoreo.addParameter("AppKey:" + DROPBOX_APP_KEY);
UploadFileChoreo.addInput("AppSecret", DROPBOX_APP_SECRET);
UploadFileChoreo.addInput("AccessToken", DROPBOX_ACCESS_TOKEN);
UploadFileChoreo.addInput("AccessTokenSecret", DROPBOX_ACCESS_TOKEN_SECRET);
UploadFileChoreo.addInput("AppKey", DROPBOX_APP_KEY);
// tell the Process to run and wait for the results. The
// return code (returnCode) will tell us whether the Temboo client
@ -156,26 +144,21 @@ void loop()
String base64Encode(String toEncode) {
// we need a Process object to send a Choreo request to Temboo
Process Base64EncodeChoreo;
TembooChoreo Base64EncodeChoreo;
// invoke the Temboo client
Base64EncodeChoreo.begin("temboo");
Base64EncodeChoreo.begin();
// set Temboo account credentials
Base64EncodeChoreo.addParameter("-a");
Base64EncodeChoreo.addParameter(TEMBOO_ACCOUNT);
Base64EncodeChoreo.addParameter("-u");
Base64EncodeChoreo.addParameter(TEMBOO_APP_KEY_NAME);
Base64EncodeChoreo.addParameter("-p");
Base64EncodeChoreo.addParameter(TEMBOO_APP_KEY);
Base64EncodeChoreo.setAccountName(TEMBOO_ACCOUNT);
Base64EncodeChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
Base64EncodeChoreo.setAppKey(TEMBOO_APP_KEY);
// identify the Temboo Library choreo to run (Utilities > Encoding > Base64Encode)
Base64EncodeChoreo.addParameter("-c");
Base64EncodeChoreo.addParameter("/Library/Utilities/Encoding/Base64Encode");
Base64EncodeChoreo.setChoreo("/Library/Utilities/Encoding/Base64Encode");
// set choreo inputs
Base64EncodeChoreo.addParameter("-i");
Base64EncodeChoreo.addParameter("Text:" + toEncode);
Base64EncodeChoreo.addInput("Text", toEncode);
// run the choreo
Base64EncodeChoreo.run();

View File

@ -1,115 +0,0 @@
/*
GetYahooWeatherReport
Demonstrates making a request to the Yahoo! Weather API using the Temboo Arduino Yun SDK.
Check out the latest Arduino & Temboo examples and support docs at http://www.temboo.com/arduino
A Temboo account and application key are necessary to run all Temboo examples.
If you don't already have one, you can register for a free Temboo account at
http://www.temboo.com
This example assumes basic familiarity with Arduino sketches, and that your Yun is connected
to the Internet.
Looking for another API? We've got over 100 in our Library!
This example code is in the public domain.
*/
#include <Bridge.h>
#include <Temboo.h>
#include "TembooAccount.h" // contains Temboo account information
// as described in the footer comment below
// the address for which a weather forecast will be retrieved
String ADDRESS_FOR_FORECAST = "104 Franklin St., New York NY 10013";
int numRuns = 1; // execution count, so that this doesn't run forever
int maxRuns = 10; // max number of times the Yahoo WeatherByAddress Choreo should be run
void setup() {
Serial.begin(9600);
// for debugging, wait until a serial console is connected
delay(4000);
while(!Serial);
Bridge.begin();
}
void loop()
{
// while we haven't reached the max number of runs...
if (numRuns <= maxRuns) {
// print status
Serial.println("Running GetWeatherByAddress - Run #" + String(numRuns++) + "...");
// create a TembooChoreo object to send a Choreo request to Temboo
TembooChoreo GetWeatherByAddressChoreo;
// invoke the Temboo client
GetWeatherByAddressChoreo.begin();
// add your temboo account info
GetWeatherByAddressChoreo.setAccountName(TEMBOO_ACCOUNT);
GetWeatherByAddressChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
GetWeatherByAddressChoreo.setAppKey(TEMBOO_APP_KEY);
// set the name of the choreo we want to run
GetWeatherByAddressChoreo.setChoreo("/Library/Yahoo/Weather/GetWeatherByAddress");
// set choreo inputs; in this case, the address for which to retrieve weather data
// the Temboo client provides standardized calls to 100+ cloud APIs
GetWeatherByAddressChoreo.addInput("Address", ADDRESS_FOR_FORECAST);
// add an output filter to extract the name of the city.
GetWeatherByAddressChoreo.addOutputFilter("city", "/rss/channel/yweather:location/@city", "Response");
// add an output filter to extract the current temperature
GetWeatherByAddressChoreo.addOutputFilter("temperature", "/rss/channel/item/yweather:condition/@temp", "Response");
// add an output filter to extract the date and time of the last report.
GetWeatherByAddressChoreo.addOutputFilter("date", "/rss/channel/item/yweather:condition/@date", "Response");
// run the choreo
GetWeatherByAddressChoreo.run();
// when the choreo results are available, print them to the serial monitor
while(GetWeatherByAddressChoreo.available()) {
char c = GetWeatherByAddressChoreo.read();
Serial.print(c);
}
GetWeatherByAddressChoreo.close();
}
Serial.println("Waiting...");
Serial.println("");
delay(30000); // wait 30 seconds between GetWeatherByAddress calls
}
/*
IMPORTANT NOTE: TembooAccount.h:
TembooAccount.h is a file referenced by this sketch that contains your Temboo account information.
You'll need to edit the placeholder version of TembooAccount.h included with this example sketch,
by inserting your own Temboo account name and app key information. The contents of the file should
look like:
#define TEMBOO_ACCOUNT "myTembooAccountName" // your Temboo account name
#define TEMBOO_APP_KEY_NAME "myFirstApp" // your Temboo app key name
#define TEMBOO_APP_KEY "xxx-xxx-xxx-xx-xxx" // your Temboo app key
You can find your Temboo App Key information on the Temboo website,
under My Account > Application Keys
The same TembooAccount.h file settings can be used for all Temboo SDK sketches.
Keeping your account information in a separate file means you can save it once,
then just distribute the main .ino file without worrying that you forgot to delete your credentials.
*/

View File

@ -1,4 +0,0 @@
#define TEMBOO_ACCOUNT "myTembooAccountName" // your Temboo account name
#define TEMBOO_APP_KEY_NAME "myFirstApp" // your Temboo app key name
#define TEMBOO_APP_KEY "xxx-xxx-xxx-xx-xxx" // your Temboo app key