SlideShare a Scribd company logo
1 of 25
WIFI
BGI.SEA
BGI2003cb4g!
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 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, 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, risks associated with 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 quarter ended
July 31, 2011. This document and others 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 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.
public class HelloWorld {
public string getEmail() {
return 'joshua.birk@salesforce.com';
}
public string getTwitter() {
return ’@joshbirk';
}
public string getGithub() {
return 'https://github.com/joshbirk';
Canvas
Framework for using third party apps within Salesforce
OAuth
Industry standard method of user authentication
Remote
Application
Salesforce
Platform
Sends App Credentials
User logs in,
Token sent to callback
Confirms token
Send access token
Maintain session with
refresh token
OAuth2 Flow
http://workbench.developerforce.com
http://workbench.developerforce.com
Signed Request
Encrypted authentication message to client
Decoding
//In Canvas via SignedRequest/POST, the authentication should be passed via the
signed_request header
$signedRequest = $_REQUEST['signed_request'];
$consumer_secret = $_ENV['consumer_secret'];
if ($signedRequest == null || $consumer_secret == null) {
echo "Error: Signed Request or Consumer Secret not found";
}
//decode the signedRequest
$sep = strpos($signedRequest, '.');
$encodedSig = substr($signedRequest, 0, $sep);
$encodedEnv = substr($signedRequest, $sep + 1);
$calcedSig = base64_encode(hash_hmac("sha256", $encodedEnv,
$consumer_secret, true));
if ($calcedSig != $encodedSig) {
echo "Error: Signed Request Failed. Is the app in Canvas?";
https://github.com/joshbirk/Canvas-PHP
Apex Endpoints
Exposing Apex methods via SOAP and REST
Apex SOAP
global class MyWebService {
webService static Id makeContact(String lastName, Account a) {
Contact c = new Contact(lastName = 'Weissman',
AccountId = a.Id);
insert c;
return c.id;
}
}
Apex REST
@RestResource(urlMapping='/CaseManagement/v1/*')
global with sharing class CaseMgmtService
{
@HttpPost
global static String attachPic(){
RestRequest req = RestContext.request;
RestResponse res = Restcontext.response;
Id caseId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
Blob picture = req.requestBody;
Attachment a = new Attachment (ParentId = caseId,
Body = picture,
ContentType = 'image/
http://bit.ly/gist_apex_cfprest
Apex JSON
Methods to serialize and deserialize JSON Objects
Serialization
Datetime dt = Datetime.newInstance(
Date.newInstance(
2011, 3, 22),
Time.newInstance(
1, 15, 18, 0));
String str = JSON.serialize(dt);
System.assertEquals(
'"2011-03-22T08:15:18.000Z"',
str);
Deserializatio
n
Decimal n = (Decimal)JSON.deserialize(
'100.1', Decimal.class);
System.assertEquals(n, 100.1);
Car c = (Car)JSON.deserializeStrict(
'{"make":"SFDC","year":"2020"}',
Car.class);
System.assertEquals(c.make, 'SFDC');
System.assertEquals(c.year, '2020');
Map<String, Object> m =
(Map<String, Object>)
JSON.deserializeUntyped(jsonInput);
http://bit.ly/gist_apex_flickr
Polyglot Framework
PaaS allowing for the deployment of multiple languages
$ git push heroku master
Counting objects: 67, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (53/53), done.
Writing objects: 100% (67/67), 26.33 KiB, done.
Total 67 (delta 5), reused 0 (delta 0)
Github Repo Heroku
Local Repo
Pull / Push
Development Changes
Push Deployments
Monitor Application
Double-click to enter title
Double-click to enter text
http://developer.force.com

More Related Content

What's hot

Customizing Chatter UI Using Chatter Connect API
Customizing Chatter UI Using Chatter Connect APICustomizing Chatter UI Using Chatter Connect API
Customizing Chatter UI Using Chatter Connect API
Salesforce Developers
 

What's hot (15)

Winter '19 開発者向け新機能
Winter '19 開発者向け新機能Winter '19 開発者向け新機能
Winter '19 開発者向け新機能
 
Dreamforce 2014 - Salesforce Python SDK for REST/SOAP APIs
Dreamforce 2014 - Salesforce Python SDK for REST/SOAP APIsDreamforce 2014 - Salesforce Python SDK for REST/SOAP APIs
Dreamforce 2014 - Salesforce Python SDK for REST/SOAP APIs
 
アドバンスドLightningコンポーネント:品質の高いコンポーネント開発のためのTips
アドバンスドLightningコンポーネント:品質の高いコンポーネント開発のためのTipsアドバンスドLightningコンポーネント:品質の高いコンポーネント開発のためのTips
アドバンスドLightningコンポーネント:品質の高いコンポーネント開発のためのTips
 
Summer '17 リリース開発者向け新機能Webinar
Summer '17 リリース開発者向け新機能WebinarSummer '17 リリース開発者向け新機能Webinar
Summer '17 リリース開発者向け新機能Webinar
 
アプリケーション開発をモダンに変える Salesforce DX
アプリケーション開発をモダンに変える Salesforce DXアプリケーション開発をモダンに変える Salesforce DX
アプリケーション開発をモダンに変える Salesforce DX
 
IoTで成功を収めるための製品と戦略 〜 Salesforce IoT 〜
IoTで成功を収めるための製品と戦略 〜 Salesforce IoT 〜IoTで成功を収めるための製品と戦略 〜 Salesforce IoT 〜
IoTで成功を収めるための製品と戦略 〜 Salesforce IoT 〜
 
Dreamforce18 update platform
Dreamforce18 update platformDreamforce18 update platform
Dreamforce18 update platform
 
Single Sign-On and User Management With Salesforce Identity
Single Sign-On and User Management With Salesforce IdentitySingle Sign-On and User Management With Salesforce Identity
Single Sign-On and User Management With Salesforce Identity
 
Integrate Salesforce with Google Glass Using the Mirror API
Integrate Salesforce with Google Glass Using the Mirror APIIntegrate Salesforce with Google Glass Using the Mirror API
Integrate Salesforce with Google Glass Using the Mirror API
 
Custom Metadata Data Types
Custom Metadata Data TypesCustom Metadata Data Types
Custom Metadata Data Types
 
Salesforce Labs - Hidden Gems on the AppExchange
Salesforce Labs - Hidden Gems on the AppExchangeSalesforce Labs - Hidden Gems on the AppExchange
Salesforce Labs - Hidden Gems on the AppExchange
 
Mastering Force.com: Advanced Visualforce
Mastering Force.com: Advanced VisualforceMastering Force.com: Advanced Visualforce
Mastering Force.com: Advanced Visualforce
 
Customizing Chatter UI Using Chatter Connect API
Customizing Chatter UI Using Chatter Connect APICustomizing Chatter UI Using Chatter Connect API
Customizing Chatter UI Using Chatter Connect API
 
AppExchange - Die ideale Ergänzung zu Salesforce
AppExchange - Die ideale Ergänzung zu SalesforceAppExchange - Die ideale Ergänzung zu Salesforce
AppExchange - Die ideale Ergänzung zu Salesforce
 
How & Why Rodco Built a Private App Store With Salesforce & Heroku
How & Why Rodco Built a Private App Store With Salesforce & HerokuHow & Why Rodco Built a Private App Store With Salesforce & Heroku
How & Why Rodco Built a Private App Store With Salesforce & Heroku
 

Viewers also liked

Primero 2014 bmo conference final
Primero 2014 bmo conference finalPrimero 2014 bmo conference final
Primero 2014 bmo conference final
primero_mining
 
A2 newspaper research
A2 newspaper researchA2 newspaper research
A2 newspaper research
debbie14
 
the beuty myth
the beuty myththe beuty myth
the beuty myth
nohecruz
 
橙色精美销售模板Ppt
橙色精美销售模板Ppt橙色精美销售模板Ppt
橙色精美销售模板Ppt
Gina Gu
 
橙色精美销售模板Ppt
橙色精美销售模板Ppt橙色精美销售模板Ppt
橙色精美销售模板Ppt
Gina Gu
 
【官方正版】红米发布会精华版Ppt
【官方正版】红米发布会精华版Ppt【官方正版】红米发布会精华版Ppt
【官方正版】红米发布会精华版Ppt
Gina Gu
 
10remarkableentrepreneurshipthoughts 131008125313-phpapp01
10remarkableentrepreneurshipthoughts 131008125313-phpapp0110remarkableentrepreneurshipthoughts 131008125313-phpapp01
10remarkableentrepreneurshipthoughts 131008125313-phpapp01
Gina Gu
 
Navidad-Aleksandra Jezierska II F
Navidad-Aleksandra Jezierska II FNavidad-Aleksandra Jezierska II F
Navidad-Aleksandra Jezierska II F
iberiawklasie
 

Viewers also liked (20)

02. genesa bahan galian
02. genesa bahan galian02. genesa bahan galian
02. genesa bahan galian
 
Primero 2014 bmo conference final
Primero 2014 bmo conference finalPrimero 2014 bmo conference final
Primero 2014 bmo conference final
 
Teknik sampling normalitas data statistika
Teknik sampling normalitas data statistikaTeknik sampling normalitas data statistika
Teknik sampling normalitas data statistika
 
Denver Gold Forum
Denver Gold ForumDenver Gold Forum
Denver Gold Forum
 
A2 newspaper research
A2 newspaper researchA2 newspaper research
A2 newspaper research
 
Nofta postharvest financing project
Nofta postharvest financing projectNofta postharvest financing project
Nofta postharvest financing project
 
T'estim moltíssim
T'estim moltíssimT'estim moltíssim
T'estim moltíssim
 
the beuty myth
the beuty myththe beuty myth
the beuty myth
 
Pizza palace
Pizza palacePizza palace
Pizza palace
 
橙色精美销售模板Ppt
橙色精美销售模板Ppt橙色精美销售模板Ppt
橙色精美销售模板Ppt
 
understand Storm in pictures
understand Storm in picturesunderstand Storm in pictures
understand Storm in pictures
 
3547358436
35473584363547358436
3547358436
 
橙色精美销售模板Ppt
橙色精美销售模板Ppt橙色精美销售模板Ppt
橙色精美销售模板Ppt
 
2012 aug 28 issue 60
2012 aug 28 issue 602012 aug 28 issue 60
2012 aug 28 issue 60
 
【官方正版】红米发布会精华版Ppt
【官方正版】红米发布会精华版Ppt【官方正版】红米发布会精华版Ppt
【官方正版】红米发布会精华版Ppt
 
Verb to be
Verb to beVerb to be
Verb to be
 
10remarkableentrepreneurshipthoughts 131008125313-phpapp01
10remarkableentrepreneurshipthoughts 131008125313-phpapp0110remarkableentrepreneurshipthoughts 131008125313-phpapp01
10remarkableentrepreneurshipthoughts 131008125313-phpapp01
 
Article tema 1
Article tema 1Article tema 1
Article tema 1
 
Navidad-Aleksandra Jezierska II F
Navidad-Aleksandra Jezierska II FNavidad-Aleksandra Jezierska II F
Navidad-Aleksandra Jezierska II F
 
Curso gestión avanzada de la Innovación I+D+I 2016
Curso gestión avanzada de la Innovación I+D+I 2016Curso gestión avanzada de la Innovación I+D+I 2016
Curso gestión avanzada de la Innovación I+D+I 2016
 

Similar to Seattle Dev Garage

Alba Rivas - Building Slack Applications with Bolt.js.pdf
Alba Rivas - Building Slack Applications with Bolt.js.pdfAlba Rivas - Building Slack Applications with Bolt.js.pdf
Alba Rivas - Building Slack Applications with Bolt.js.pdf
MarkPawlikowski2
 

Similar to Seattle Dev Garage (20)

Cutting Edge Mobile Development in the App Cloud
Cutting Edge Mobile Development in the App CloudCutting Edge Mobile Development in the App Cloud
Cutting Edge Mobile Development in the App Cloud
 
Turbo-charge Your Skuid Page with Apex
Turbo-charge Your Skuid Page with ApexTurbo-charge Your Skuid Page with Apex
Turbo-charge Your Skuid Page with Apex
 
Lightning Component Framework from 0 to App
Lightning Component Framework from 0 to AppLightning Component Framework from 0 to App
Lightning Component Framework from 0 to App
 
Force.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.comForce.com Friday: Intro to Force.com
Force.com Friday: Intro to Force.com
 
S1 and Visualforce Publisher Actions
S1 and Visualforce Publisher ActionsS1 and Visualforce Publisher Actions
S1 and Visualforce Publisher Actions
 
Developing Offline Mobile Apps With Salesforce Mobile SDK SmartStore
Developing Offline Mobile Apps With Salesforce Mobile SDK SmartStoreDeveloping Offline Mobile Apps With Salesforce Mobile SDK SmartStore
Developing Offline Mobile Apps With Salesforce Mobile SDK SmartStore
 
Building Apps for the ExactTarget Marketing Cloud
Building Apps for the ExactTarget Marketing CloudBuilding Apps for the ExactTarget Marketing Cloud
Building Apps for the ExactTarget Marketing Cloud
 
Detroit ELEVATE Track 1
Detroit ELEVATE Track 1Detroit ELEVATE Track 1
Detroit ELEVATE Track 1
 
#DF17Recap series: Integrate apps easier with the Salesforce platform
#DF17Recap series: Integrate apps easier with the Salesforce platform#DF17Recap series: Integrate apps easier with the Salesforce platform
#DF17Recap series: Integrate apps easier with the Salesforce platform
 
Navi Mumbai Salesforce DUG meetup on integration
Navi Mumbai Salesforce DUG meetup on integrationNavi Mumbai Salesforce DUG meetup on integration
Navi Mumbai Salesforce DUG meetup on integration
 
Salesforce Tour Paris - Platform Events - Martin Lezer
Salesforce Tour Paris - Platform Events - Martin LezerSalesforce Tour Paris - Platform Events - Martin Lezer
Salesforce Tour Paris - Platform Events - Martin Lezer
 
Streaming API with Java
Streaming API with JavaStreaming API with Java
Streaming API with Java
 
Data Democracy: Use Lightning Connect & Heroku to Visualize any Data, Anywhere
Data Democracy: Use Lightning Connect & Heroku to Visualize any Data, AnywhereData Democracy: Use Lightning Connect & Heroku to Visualize any Data, Anywhere
Data Democracy: Use Lightning Connect & Heroku to Visualize any Data, Anywhere
 
Build Real-time Multi-User Apps With Visualforce, GoInstant, and AngularJS
Build Real-time Multi-User Apps With Visualforce, GoInstant, and AngularJSBuild Real-time Multi-User Apps With Visualforce, GoInstant, and AngularJS
Build Real-time Multi-User Apps With Visualforce, GoInstant, and AngularJS
 
Elevate workshop track1
Elevate workshop track1Elevate workshop track1
Elevate workshop track1
 
Deep dive into salesforce connected app - part 2
Deep dive into salesforce connected app - part 2Deep dive into salesforce connected app - part 2
Deep dive into salesforce connected app - part 2
 
Web Apps for Salesforce with Heroku Connect
Web Apps for Salesforce with Heroku ConnectWeb Apps for Salesforce with Heroku Connect
Web Apps for Salesforce with Heroku Connect
 
Alba Rivas - Building Slack Applications with Bolt.js.pdf
Alba Rivas - Building Slack Applications with Bolt.js.pdfAlba Rivas - Building Slack Applications with Bolt.js.pdf
Alba Rivas - Building Slack Applications with Bolt.js.pdf
 
Tour of Heroku + Salesforce Integration Methods
Tour of Heroku + Salesforce Integration MethodsTour of Heroku + Salesforce Integration Methods
Tour of Heroku + Salesforce Integration Methods
 
Developing Interactive Tables and Charts in Visualforce
Developing Interactive Tables and Charts in VisualforceDeveloping Interactive Tables and Charts in Visualforce
Developing Interactive Tables and Charts in Visualforce
 

More from Joshua Birk

More from Joshua Birk (8)

Detroit ELEVATE Track 2
Detroit ELEVATE Track 2Detroit ELEVATE Track 2
Detroit ELEVATE Track 2
 
ELEVATE Advanced Workshop
ELEVATE Advanced WorkshopELEVATE Advanced Workshop
ELEVATE Advanced Workshop
 
Workshop slides
Workshop slidesWorkshop slides
Workshop slides
 
Platform integration
Platform integrationPlatform integration
Platform integration
 
Brasil Roadshow
Brasil RoadshowBrasil Roadshow
Brasil Roadshow
 
Sao Paolo Workshop
Sao Paolo WorkshopSao Paolo Workshop
Sao Paolo Workshop
 
Mobile SDK + Cordova
Mobile SDK + CordovaMobile SDK + Cordova
Mobile SDK + Cordova
 
Blue converter
Blue converterBlue converter
Blue converter
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 

Seattle Dev Garage

  • 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 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, 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, risks associated with 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 quarter ended July 31, 2011. This document and others 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 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.
  • 3. public class HelloWorld { public string getEmail() { return 'joshua.birk@salesforce.com'; } public string getTwitter() { return ’@joshbirk'; } public string getGithub() { return 'https://github.com/joshbirk';
  • 4. Canvas Framework for using third party apps within Salesforce
  • 5.
  • 6. OAuth Industry standard method of user authentication
  • 7. Remote Application Salesforce Platform Sends App Credentials User logs in, Token sent to callback Confirms token Send access token Maintain session with refresh token OAuth2 Flow
  • 11. Decoding //In Canvas via SignedRequest/POST, the authentication should be passed via the signed_request header $signedRequest = $_REQUEST['signed_request']; $consumer_secret = $_ENV['consumer_secret']; if ($signedRequest == null || $consumer_secret == null) { echo "Error: Signed Request or Consumer Secret not found"; } //decode the signedRequest $sep = strpos($signedRequest, '.'); $encodedSig = substr($signedRequest, 0, $sep); $encodedEnv = substr($signedRequest, $sep + 1); $calcedSig = base64_encode(hash_hmac("sha256", $encodedEnv, $consumer_secret, true)); if ($calcedSig != $encodedSig) { echo "Error: Signed Request Failed. Is the app in Canvas?";
  • 13. Apex Endpoints Exposing Apex methods via SOAP and REST
  • 14. Apex SOAP global class MyWebService { webService static Id makeContact(String lastName, Account a) { Contact c = new Contact(lastName = 'Weissman', AccountId = a.Id); insert c; return c.id; } }
  • 15. Apex REST @RestResource(urlMapping='/CaseManagement/v1/*') global with sharing class CaseMgmtService { @HttpPost global static String attachPic(){ RestRequest req = RestContext.request; RestResponse res = Restcontext.response; Id caseId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1); Blob picture = req.requestBody; Attachment a = new Attachment (ParentId = caseId, Body = picture, ContentType = 'image/
  • 17. Apex JSON Methods to serialize and deserialize JSON Objects
  • 18. Serialization Datetime dt = Datetime.newInstance( Date.newInstance( 2011, 3, 22), Time.newInstance( 1, 15, 18, 0)); String str = JSON.serialize(dt); System.assertEquals( '"2011-03-22T08:15:18.000Z"', str);
  • 19. Deserializatio n Decimal n = (Decimal)JSON.deserialize( '100.1', Decimal.class); System.assertEquals(n, 100.1); Car c = (Car)JSON.deserializeStrict( '{"make":"SFDC","year":"2020"}', Car.class); System.assertEquals(c.make, 'SFDC'); System.assertEquals(c.year, '2020'); Map<String, Object> m = (Map<String, Object>) JSON.deserializeUntyped(jsonInput);
  • 21.
  • 22. Polyglot Framework PaaS allowing for the deployment of multiple languages
  • 23.
  • 24. $ git push heroku master Counting objects: 67, done. Delta compression using up to 4 threads. Compressing objects: 100% (53/53), done. Writing objects: 100% (67/67), 26.33 KiB, done. Total 67 (delta 5), reused 0 (delta 0) Github Repo Heroku Local Repo Pull / Push Development Changes Push Deployments Monitor Application
  • 25. Double-click to enter title Double-click to enter text http://developer.force.com

Editor's Notes

  1. It’s actually using Canvas, which allows me to easily put third part applications into Salesforce in a secure manner.
  2. For instance, maybe I have a large internal intranet applications. I don’t want to port all that functionality into Salesforce, but I do want to be able to integrate this one interface.
  3. How does privacy work with Chatter? Can you accidentally share a record I’m not supposed to see?
  4. How does privacy work with Chatter? Can you accidentally share a record I’m not supposed to see?
  5. How does privacy work with Chatter? Can you accidentally share a record I’m not supposed to see?
  6. How does privacy work with Chatter? Can you accidentally share a record I’m not supposed to see?
  7. How does privacy work with Chatter? Can you accidentally share a record I’m not supposed to see?
  8. It’s actually using Canvas, which allows me to easily put third part applications into Salesforce in a secure manner.
  9. How does privacy work with Chatter? Can you accidentally share a record I’m not supposed to see?