Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Using Python on Heroku and Force.com Canvas to Enhance Salesforce.com

Using Python on Heroku and Force.com Canvas to Enhance Salesforce.com

See how Force.com Canvas and Heroku can be used to extend or enhance Salesforce functionality.
Build Canvas applications with Python that enhance the functionality of Salesforce's recycle bin by adding additional filtering options, persistence options, and record arrangement.
Finally, see how Force.com Canvas application can be hosted on Heroku, offering further Force.com advantages.

Bruno Fagundez

December 10, 2013
Tweet

More Decks by Bruno Fagundez

Other Decks in Technology

Transcript

  1. Using Python on Heroku and Force.com
    Canvas to Enhance Salesforce.com
    Bruno Fagundez , Developer
    @geekymartian

    View Slide

  2. Safe harbor
    Safe harbor statement under the Private Securities Litigation Reform Act of 1995:
    This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties
    materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results
    expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed
    forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items
    and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning
    new, planned, or upgraded services or technology developments and customer contracts or use of our services.
    The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new
    functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our
    operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any
    litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our
    relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our
    service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to
    larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is
    included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent
    fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor
    Information section of our Web site.
    Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently
    available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions 

    based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these
    forward-looking statements.

    View Slide

  3. Bruno Fagundez
    Web Developer

    @geekymartian

    View Slide

  4. What is Force.com Canvas?

    View Slide

  5. What is Heroku?

    View Slide

  6. What is Python?

    View Slide

  7. Canvas applications

    View Slide

  8. Canvas application creation
    ▪ Force.com provides a Canvas app previewer that allows you to bootstrap
    new apps quickly

    View Slide

  9. But…

    View Slide

  10. Creating a “Hello dreamforce” canvas app
    Using Python ☺

    View Slide

  11. Initial Setup

    View Slide

  12. Heroku setup
    ▪ Get a free heroku account
    ▪ Install heroku toolbelt
    • Heroku client – CLI tool for creating and managing Heroku apps
    • Foreman – to run apps locally
    • Git – revision control and deploy

    View Slide

  13. SF setup
    ▪ Get a free developer account
    ▪ Code right into the developer console IDE or
    ▪ Install Force.com Eclipse IDE or Sublime + Mavensmate

    View Slide

  14. Canvas Application

    View Slide

  15. Heroku app Creation

    View Slide

  16. Show me some code!

    View Slide

  17. Heroku app
    ▪ Create a virtual environment and activate it
    ▪ Install required libraries

    View Slide

  18. Heroku app
    ▪ Try it out offline before

    View Slide

  19. Heroku app
    ▪ Deploy it to heroku!

    View Slide

  20. Awesome, but where Force.com and
    Heroku are getting connected?

    View Slide

  21. Canvas authentication methods
    ▪ Signed Request (default)
    • The de-codification of the signed request is explained in the documentation. Only java
    and ruby examples are available.
    • I’ve ported ruby class to Python, git repo:

    http://github.com/bfagundez/python-force-canvas
    !
    ▪ OAuth 2.0

    View Slide

  22. Adding Canvas JS SDK
    ▪ Canvas JS SDK is available as a github repository

    https://github.com/forcedotcom/SalesforceCanvasJavascriptSDK
    ▪ JS SDK provides access to several force.com APIs
    ▪ Most of the integration with Salesforce is throught Javascript and REST

    View Slide

  23. Decoding signed request

    View Slide

  24. Previewing the app

    View Slide

  25. Context object

    View Slide

  26. Improving the initial prototype

    View Slide

  27. Why the recycle bin?
    ▪ Filtering functionality is limited
    ▪ Hard limit of persistence of 15 days
    ▪ Good example of platform improvement
    ▪ No logs are kept of deleted items after the data is gone

    View Slide

  28. Better app structure

    View Slide

  29. Yeoman

    View Slide

  30. Bower

    View Slide

  31. Application Components
    ▪ UI
    • AngularJS
    • Jquery
    • Twitter Bootstrap
    ▪ Storage
    • Redis DB

    View Slide

  32. Using signed request to access SF SOAP API

    View Slide

  33. Demo

    View Slide

  34. View Slide

  35. Resources
    ▪ Canvas documentation:

    http://www.salesforce.com/us/developer/docs/platform_connect/
    index_Left.htm
    ▪ Heroku Toolbelt:

    https://toolbelt.heroku.com/
    ▪ Python in Heroku 

    https://devcenter.heroku.com/articles/getting-started-with-python
    ▪ Yeoman

    http://yeoman.io/

    View Slide

  36. More resources!
    ▪ Python signed request decoder :

    https://github.com/bfagundez/python-force-canvas
    ▪ Super powered recycle bin source code:

    https://github.com/bfagundez/super_powered_recycle_bin
    My contact details:
    twitter: @geekymartian

    email: [email protected]

    View Slide

  37. View Slide