where customization begins: an intro to the salsa api and salsascript
Post on 10-May-2015
1.399 Views
Preview:
DESCRIPTION
TRANSCRIPT
www.salsalabs.com
www.salsalabs.com
Where Customization Begins!
An Intro to the Salsa API and SalsaScript
www.salsalabs.com
Yon and Silona Silona and Yon
Yon - senior programmer - yharegot@salsalabs.comSilona - developer community manager - silona@salsalabs.com
www.salsalabs.com
1. Form Actions2. RESTful API
3. SalsaScript based API
SalsaAPI basics
www.salsalabs.com
easy peasy
Form Based Actions
www.salsalabs.com
https://secure.flickr.com/photos/doolloop/110837794/
www.salsalabs.com
Simple Signup Box for emailGather more infoPetitionsSurveysActionsEvent
You can get setup in minutes!
www.salsalabs.com
Create the Page in Salsa HQ Add various options you will need -- add supporter to a group, send email trigger(s) upon sign-up, redirect info, etc.
Step 1
www.salsalabs.com
Cut and Paste! Click on the link generated in HQ to view the
page, then cut & paste relevant section (everything between <form> ... </form>) to your hosted site.
Step 2
www.salsalabs.com
Fix the relative path Change the relative path in the form action
to an absolute path pointing to your node location
<form name="data" action="/save" method="POST">to<form name="data" action="http://hq-salsa.
democracyinaction.org/save" method="POST">
Step 3
www.salsalabs.com
Set up Error messages add the following anywhere on you page.<script type="text/javascript" src="http://yournode/api/flashMessageJS.sjs"></script>e.g.<script type="text/javascript" src="http://hq-salsa.democracyinaction.org/api/flashMessageJS.sjs"></script>
Step 4
www.salsalabs.com
TA DA!
https://secure.flickr.com/photos/cc_chapman/4878364959/
www.salsalabs.com
What is a NPO without Supporters? and ways to encourage them to sign up more?
www.salsalabs.com
Petitions Surveys Email lists Events Actions
in minutes!
You can create
www.salsalabs.com
● http://www.salsalabs.com/devs● http://www.salsalabs.
com/devs/recipes/webform_api/signup_form
● http://www.salsalabs.com/p/salsa/website/public2/commons/dev/docs/api/unauthenticated.sjs?null
● http://www.salsalabs.com/devs/recipes/webform_api/action_form
● http://www.salsalabs.com/devs/recipes/webform_api/event_form
Additional resources
www.salsalabs.com
RESTful API
www.salsalabs.com
What is REST?
representational state transfer
www.salsalabs.com
https://secure.flickr.com/photos/becca/9541595/
www.salsalabs.com
http://tomayko.com/writings/rest-to-my-wife
Get Put Delete an objectCRUD Create, Read, Update and Delete
● Current API - getObject or getObjects
○ Powerful but obtuse
● RESTful API - more specific○ getSupporter○ getEvent○ getDonation
No Really... What is REST
www.salsalabs.com
MongoDB - NoSQL● Integrations
● Mashery ● 150K dev
● easy dev - check box like salesforce● hire more devs but for free
● Drupal ● Large scale CMS
● Wordpress ● 22% of the websites
Why REST?
www.salsalabs.com
Authentication
● http://hq-salsa.democracyinaction.org/api/authenticate.sjs?email=youremailaddress&password=yourpassword
Primary use cases are for syncing data across desparate databases.
www.salsalabs.com
www.salsalabs.com
Getting data:-- xmlhttp://hq-salsa.democracyinaction.org/api/getObject.sjs?xml&object=supporter&key=thesupporter_KEY -- jsonhttp://hq-salsa.democracyinaction.org/api/getObject.sjs?json&object=supporter&key=thesupporter_KEY
getObject.sjs
www.salsalabs.com
www.salsalabs.com
www.salsalabs.com
http://hq-salsa.democracyinaction.org/api/getObjects.sjs?xml&object=supporter&include=First_Name,Last_Name,Email&condition=supporter_KEY=condition● Note how you can add an include parameter, you can toggle the out
put by changing xml to json● Condition can be anything that you would put in the where part of a sql
query
getObjects.sjs
www.salsalabs.com
www.salsalabs.com
● http://hq-salsa.democracyinaction.org/api/getLeftJoin.sjs?xml&object=supporter_groups,supporter&condition=supporter_KEY=thesupporter_KEY&include=groups_KEY
getLeftJoin.sjs
www.salsalabs.com
www.salsalabs.com
● http://hq-salsa.democracyinaction.org/api/getCounts.sjs?object=donation&condition=RESULT=0&countColumn=amount&xml&callback
● http://hq-salsa.democracyinaction.org/api/getCounts.sjs?object=donation&condition=RESULT=0&countColumn=amount&json&callback
getCounts.sjs
www.salsalabs.com
www.salsalabs.com
www.salsalabs.com
Adding datahttps://hq-salsa.democracyinaction.org/save?xml&object=supporter&organization_KEY=yourorgKEY&key=thesupporter_KEY&City=myCity&First_Name=Yoncheck:http://hq-salsa.democracyinaction.org/api/getObjects.sjs?xml&object=supporter&include=First_Name,Last_Name,Email&condition=supporter_KEY=thesupporter_KEY
/save
www.salsalabs.com
creating a completely new supporterhttps://hq-salsa.democracyinaction.org/save?xml&object=supporter&organization_KEY=yourorganization_KEY&key=0&City=myCity&First_Name=Tester&Email=newRestSupporter@testing.salsalabs.com
/save continued
www.salsalabs.com
● http://www.salsalabs.com/devs/recipes/data_api/synchronize
● http://www.salsalabs.com/devs/recipes/data_api/event_signups
Additional resources
www.salsalabs.com
www.salsalabs.com
www.salsalabs.com
https://docs.google.com/spreadsheet/ccc?key=0AmFGN9Kd_fgSdEpXV0FCYWlHSi16ZVMtNGJwLTlnUnc#gid=0
sign up to help prioritize help us help you!
Participate!
www.salsalabs.com
Power API -- using SalsaScript
www.salsalabs.com
https://secure.engenderhealth.org/o/1222/p/d/engenderhealth/donations/public/secure-donation-v3-x2.sjs
Beautiful Example
www.salsalabs.com
www.salsalabs.com
www.salsalabs.com
Eat your own dog food.
EYDF
www.salsalabs.com
https://secure.flickr.com/photos/28863939@N04/5419597517/
TA DA!
UniqueBeautifulall your own
www.salsalabs.com
http://www.salsalabs.com/devs/developer_signup
Additional Resources
top related