{"id":4070,"date":"2014-11-29T02:07:58","date_gmt":"2014-11-29T02:07:58","guid":{"rendered":"http:\/\/www.jitendrazaa.com\/blog\/?p=4070"},"modified":"2018-05-31T15:33:33","modified_gmt":"2018-05-31T19:33:33","slug":"access-camera-and-audio-recorder-of-mobile-device-in-visualforce-and-upload-as-chatter-file","status":"publish","type":"post","link":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/access-camera-and-audio-recorder-of-mobile-device-in-visualforce-and-upload-as-chatter-file\/","title":{"rendered":"Access Camera and Audio recorder of Mobile device in Visualforce and upload as chatter file"},"content":{"rendered":"<p style=\"text-align: justify;\">In this article we will see how to use Camera and Audio recorder of mobile device in Visualforce and upload as chatter file. It may look that it is very tricky to access device camera and audio control in Visualforce however you may be right if there were no HTML5. Thanks to HTML5 for magic.<\/p>\n<figure id=\"attachment_4074\" aria-describedby=\"caption-attachment-4074\" style=\"width: 168px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Front-Page.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"wp-image-4074 size-medium\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Front-Page.jpg?resize=168%2C300&#038;ssl=1\" alt=\"Visualforce Camera Access - Front Page\" width=\"168\" height=\"300\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Front-Page.jpg?resize=168%2C300&amp;ssl=1 168w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Front-Page.jpg?resize=576%2C1024&amp;ssl=1 576w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Front-Page.jpg?resize=624%2C1109&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Front-Page.jpg?w=1152&amp;ssl=1 1152w\" sizes=\"auto, (max-width: 168px) 100vw, 168px\" \/><\/a><figcaption id=\"caption-attachment-4074\" class=\"wp-caption-text\">Visualforce Camera Access &#8211; Front Page<\/figcaption><\/figure>\n<figure id=\"attachment_4075\" aria-describedby=\"caption-attachment-4075\" style=\"width: 168px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Use-Camera-Prompt.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"wp-image-4075 size-medium\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Use-Camera-Prompt.jpg?resize=168%2C300&#038;ssl=1\" alt=\"Visualforce Camera Access - Use Camera Prompt\" width=\"168\" height=\"300\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Use-Camera-Prompt.jpg?resize=168%2C300&amp;ssl=1 168w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Use-Camera-Prompt.jpg?resize=576%2C1024&amp;ssl=1 576w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Use-Camera-Prompt.jpg?resize=624%2C1109&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Use-Camera-Prompt.jpg?w=1152&amp;ssl=1 1152w\" sizes=\"auto, (max-width: 168px) 100vw, 168px\" \/><\/a><figcaption id=\"caption-attachment-4075\" class=\"wp-caption-text\">Visualforce Camera Access &#8211; Use Camera Prompt<\/figcaption><\/figure>\n<p><!--more--><\/p>\n<figure id=\"attachment_4076\" aria-describedby=\"caption-attachment-4076\" style=\"width: 168px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Camera-Mode.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-4076\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Camera-Mode.jpg?resize=168%2C300&#038;ssl=1\" alt=\"Visualforce Camera Access - Camera Mode\" width=\"168\" height=\"300\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Camera-Mode.jpg?resize=168%2C300&amp;ssl=1 168w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Camera-Mode.jpg?resize=576%2C1024&amp;ssl=1 576w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Camera-Mode.jpg?resize=624%2C1109&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Camera-Mode.jpg?w=1152&amp;ssl=1 1152w\" sizes=\"auto, (max-width: 168px) 100vw, 168px\" \/><\/a><figcaption id=\"caption-attachment-4076\" class=\"wp-caption-text\">Visualforce Camera Access &#8211; Camera Mode<\/figcaption><\/figure>\n<figure id=\"attachment_4077\" aria-describedby=\"caption-attachment-4077\" style=\"width: 168px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Recently-clicked-image-selected.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-4077\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Recently-clicked-image-selected.jpg?resize=168%2C300&#038;ssl=1\" alt=\"Visualforce Camera Access - Recently clicked image selected\" width=\"168\" height=\"300\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Recently-clicked-image-selected.jpg?resize=168%2C300&amp;ssl=1 168w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Recently-clicked-image-selected.jpg?resize=576%2C1024&amp;ssl=1 576w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Recently-clicked-image-selected.jpg?resize=624%2C1109&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Recently-clicked-image-selected.jpg?w=1152&amp;ssl=1 1152w\" sizes=\"auto, (max-width: 168px) 100vw, 168px\" \/><\/a><figcaption id=\"caption-attachment-4077\" class=\"wp-caption-text\">Visualforce Camera Access &#8211; Recently clicked image selected<\/figcaption><\/figure>\n<figure id=\"attachment_4078\" aria-describedby=\"caption-attachment-4078\" style=\"width: 168px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Redirected-to-Chatter-File.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-4078\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Redirected-to-Chatter-File.jpg?resize=168%2C300&#038;ssl=1\" alt=\"Visualforce Camera Access - Redirected to Chatter File\" width=\"168\" height=\"300\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Redirected-to-Chatter-File.jpg?resize=168%2C300&amp;ssl=1 168w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Redirected-to-Chatter-File.jpg?resize=576%2C1024&amp;ssl=1 576w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Redirected-to-Chatter-File.jpg?resize=624%2C1109&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/11\/Visualforce-Camera-Access-Redirected-to-Chatter-File.jpg?w=1152&amp;ssl=1 1152w\" sizes=\"auto, (max-width: 168px) 100vw, 168px\" \/><\/a><figcaption id=\"caption-attachment-4078\" class=\"wp-caption-text\">Visualforce Camera Access &#8211; Redirected to Chatter File<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">All we have to do is to use &#8220;accept&#8221; attribute of &#8220;apex:inputfile&#8221;. accept=&#8221;image\/*;capture=camera&#8221; will inform device that current application (in our case Salesforce1) needs to access Camera of device.<\/p>\n<blockquote><p>\/\/To take snap from Camera<br \/>\naccept=&#8221;image\/*;capture=camera&#8221;<\/p>\n<p>\/\/To record Video<br \/>\naccept=&#8221;video\/*;capture=camcorder&#8221;<\/p>\n<p>\/\/To record Audio<br \/>\naccept=&#8221;audio\/*;capture=microphone&#8221;<\/p>\n<p><strong>Note : Safari \/ Iphone does not support microphone recording<\/strong><\/p><\/blockquote>\n<p><strong>Apex Controller :<\/strong><\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\/**\r\n * Created By   :   Jitendra Zaa\r\n * Date         :   28 Nov 2014\r\n * Description  :   Demo of accessing Camera using Visualforce and uploading file in Chatter.\r\n *              :   Article on https:\/\/jitendrazaa.com\r\n * *\/\r\npublic class CameraAccess{\r\n    public ContentVersion cont {get;set;}\r\n\r\n    public CameraAccess() {\r\n        cont = new ContentVersion();\r\n    }      \r\n\r\n    public PageReference saveFile()\r\n    {\r\n        \/\/PathOnClient is Mandatory\r\n        cont.PathOnClient = cont.title;\r\n\r\n        \/\/By default Origin value is &quot;C&quot; that means Content must be enabled in Org, so we need to explicitly set Origin as H\r\n        cont.Origin = 'H';\r\n        insert cont;\r\n\r\n        \/\/redirect to path where file is saved\r\n        return new PageReference('\/'+cont.id);\r\n    }\r\n}\r\n<\/pre>\n<p><strong>Visualforce Page :<\/strong><\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;apex:page controller=&quot;CameraAccess&quot; standardStylesheets=&quot;false&quot; showHeader=&quot;false&quot;&gt;\r\n\r\n &lt;apex:stylesheet value=&quot;{!URLFOR($Resource.BootStrap3, '\/bootstrap-3.1.1-dist\/css\/bootstrap.css')}&quot; \/&gt;\r\n &lt;div class=&quot;container&quot;&gt;\r\n    &lt;div class=&quot;row clearfix&quot;&gt;\r\n        &lt;div class=&quot;col-md-12 column&quot;&gt;\r\n            &lt;div class=&quot;jumbotron&quot;&gt;\r\n                &lt;h1&gt; Camera Access in Visualforce using HTML 5 &lt;\/h1&gt;\r\n                &lt;a href=&quot;https:\/\/jitendrazaa.com&quot;&gt;https:\/\/jitendrazaa.com&lt;\/a&gt;\r\n            &lt;\/div&gt;\r\n            &lt;div class=&quot;panel panel-warning&quot;&gt;\r\n                &lt;div class=&quot;panel-heading&quot;&gt;\r\n                    &lt;apex:form&gt;\r\n                     &lt;p&gt;\r\n                        &lt;apex:inputFile value=&quot;{!cont.VersionData}&quot;  accept=&quot;image\/*;capture=camera&quot; filename=&quot;{!cont.Title}&quot; \/&gt;\r\n                     &lt;\/p&gt;\r\n\r\n                     &lt;p&gt;\r\n                        &lt;apex:commandButton StyleClass=&quot;btn btn-danger&quot; action=&quot;{!saveFile}&quot; value=&quot;Save File&quot; \/&gt;\r\n                     &lt;\/p&gt;\r\n                    &lt;\/apex:form&gt;\r\n                &lt;\/div&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n\r\n&lt;\/apex:page&gt;\r\n<\/pre>\n<p><a title=\"Capturing Audio &amp; Video in HTML5\" href=\"http:\/\/www.html5rocks.com\/en\/tutorials\/getusermedia\/intro\/\" rel=\"nofollow\">This <\/a>is very good article by <a title=\"Googlw+ profile of Eric Bidelman\" href=\"https:\/\/plus.google.com\/+EricBidelman\/posts\" rel=\"nofollow\">Eric <\/a>on html5rocks.com which covers this topic in very detail.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article we will see how to use Camera and Audio recorder of mobile device in Visualforce and upload as chatter file. It may look that it is very tricky to access device camera and audio control in Visualforce however you may be right if there were no HTML5. Thanks to HTML5 for magic.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"jz_research_post":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[26,9],"tags":[337,56,114,331,175,336],"class_list":["post-4070","post","type-post","status-publish","format-standard","hentry","category-web","category-salesforce","tag-apex","tag-chatter-files","tag-html-5","tag-salesforce","tag-salesforce-1","tag-visualforce"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":4618,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/most-frequently-used-code-snippets-for-salesforce-developers-faq-part-21\/","url_meta":{"origin":4070,"position":0},"title":"Salesforce Developers interview questions &#8211; Most commonly used code snippets &#8211; part 21","author":"Jitendra","date":"July 7, 2015","format":false,"excerpt":"Salesforce interview questions - Most frequently used Apex and visualforce code used by Salesforce developers like \"How to query and abort scheduled job using Apex\", \"Defining VF page as HTML5\", \"Visualforce page as JSON\" , \"Handling colon in element Id for Jquery\" , \"Chatter using Apex\" and many more.","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4107,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/salesforce-drag-and-drop-file-uploader-component-with-progress-bar-html5-and-pure-javascript-based\/","url_meta":{"origin":4070,"position":1},"title":"Salesforce &#8211; Drag and Drop File Uploader Component with Progress Bar &#8211; HTML5 and Pure Javascript Based","author":"Jitendra","date":"December 19, 2014","format":false,"excerpt":"You may find many ways to upload attachments in Salesforce using\u00a0visualforce\u00a0however most of them uses some Javascript libraries (means either you need to depend on static resources or add CDN in remote site settings) or they do not have progress bar or they are not drag and drop. I thought\u2026","rel":"","context":"In &quot;HTML&quot;","block_context":{"text":"HTML","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/webtech\/web\/"},"img":{"alt_text":"HTML5 Drag And Drop File","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/12\/HTML5-Drag-And-Drop-File-1024x205.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/12\/HTML5-Drag-And-Drop-File-1024x205.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2014\/12\/HTML5-Drag-And-Drop-File-1024x205.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":4709,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/using-curl-with-salesforce-rest-api\/","url_meta":{"origin":4070,"position":2},"title":"using cURL with Salesforce Rest API","author":"Jitendra","date":"July 16, 2015","format":false,"excerpt":"Workbench is one of widely used tool in Salesforce when it comes to exploring REST API of Salesforce. However\u00a0I wanted to export REST API response\u00a0in Binary format and therefore used cURL. cURL is open source command line library mostly used to test\u00a0http request. It can be downloaded from here\u00a0and official\u2026","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Salesforce visualforce security check using cURL","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/07\/Salesforce-visualforce-security-check-using-cURL.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/07\/Salesforce-visualforce-security-check-using-cURL.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/07\/Salesforce-visualforce-security-check-using-cURL.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/07\/Salesforce-visualforce-security-check-using-cURL.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":4667,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/barcode-decoder-in-salesforce1-very-fast-and-simple\/","url_meta":{"origin":4070,"position":3},"title":"Javascript based Barcode decoder in Salesforce1 &#8211; Very fast and Simple","author":"Jitendra","date":"July 10, 2015","format":false,"excerpt":"Very fast and Simple Barcode decoder in Salesforce1 using quaggaJS javascript library","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Barcode decoder sample in Salesforce 1","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/07\/download-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/07\/download-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/07\/download-1.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":4807,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/salesforce-to-salesforce-integration-using-canvas\/","url_meta":{"origin":4070,"position":4},"title":"Salesforce to Salesforce integration using Canvas","author":"Jitendra","date":"September 14, 2015","format":false,"excerpt":"After writing this article Salesforce has enabled CSP (Content Security Policy) which restricts adding Salesforce in iFrame. We can add MyDomain URL as CSP whitelisting and it works only if user already logged into other Salesforce instance. However, if user is not logged into other instance , internally OAuth navigates\u2026","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Force.com Canvas Application Demo with Complete Source code","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/09\/Force.com-Canvas-Application-Demo-with-Complete-Source-code.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/09\/Force.com-Canvas-Application-Demo-with-Complete-Source-code.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/09\/Force.com-Canvas-Application-Demo-with-Complete-Source-code.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2649,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/get-dom-elementid-of-the-visualforce-components\/","url_meta":{"origin":4070,"position":5},"title":"Get DOM ElementID of the Visualforce components","author":"Jitendra","date":"January 19, 2012","format":false,"excerpt":"How to get the DOM ElementID of the Visualforce components in Salesforce","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/4070","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/comments?post=4070"}],"version-history":[{"count":7,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/4070\/revisions"}],"predecessor-version":[{"id":6479,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/4070\/revisions\/6479"}],"wp:attachment":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/media?parent=4070"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/categories?post=4070"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/tags?post=4070"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}