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 full-size 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 full-size slide

  3. Bruno Fagundez
    Web Developer

    @geekymartian

    View full-size slide

  4. What is Force.com Canvas?

    View full-size slide

  5. What is Heroku?

    View full-size slide

  6. What is Python?

    View full-size slide

  7. Canvas applications

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  10. Initial Setup

    View full-size slide

  11. 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 full-size slide

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

    View full-size slide

  13. Canvas Application

    View full-size slide

  14. Heroku app Creation

    View full-size slide

  15. Show me some code!

    View full-size slide

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

    View full-size slide

  17. Heroku app
    ▪ Try it out offline before

    View full-size slide

  18. Heroku app
    ▪ Deploy it to heroku!

    View full-size slide

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

    View full-size slide

  20. 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 full-size slide

  21. 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 full-size slide

  22. Decoding signed request

    View full-size slide

  23. Previewing the app

    View full-size slide

  24. Context object

    View full-size slide

  25. Improving the initial prototype

    View full-size slide

  26. 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 full-size slide

  27. Better app structure

    View full-size slide

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

    View full-size slide

  29. Using signed request to access SF SOAP API

    View full-size slide

  30. 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 full-size slide

  31. 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 full-size slide