{"id":3232,"date":"2019-07-30T15:48:02","date_gmt":"2019-07-30T23:48:02","guid":{"rendered":"https:\/\/developer.microsoft.com\/en-us\/office\/blogs\/?p=3232"},"modified":"2019-07-30T15:48:02","modified_gmt":"2019-07-30T23:48:02","slug":"office-add-in-development-community-pnp-july-2019-update","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/office-add-in-development-community-pnp-july-2019-update\/","title":{"rendered":"Office Add-in Development Community (PnP) &#8211; July 2019 update"},"content":{"rendered":"<p><span data-contrast=\"auto\">We&#8217;re excited to announce t<\/span><span data-contrast=\"auto\">hree<\/span><span data-contrast=\"auto\">\u00a0new solutions for Office Add-ins Patterns and Practices.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h2><span data-contrast=\"none\">Use storage when offline in an Office\u00a0Add-in<\/span><\/h2>\n<p><img decoding=\"async\" class=\"size-large wp-image-3238 alignnone\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2019\/07\/use-storage-when-offline-in-an-office-add-in-1024x377.png\" alt=\"A diagram showing an Office Add-in unable to connect to web services but using storage\" width=\"1024\" height=\"377\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2019\/07\/use-storage-when-offline-in-an-office-add-in-1024x377.png 1024w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2019\/07\/use-storage-when-offline-in-an-office-add-in-300x110.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2019\/07\/use-storage-when-offline-in-an-office-add-in-768x283.png 768w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2019\/07\/use-storage-when-offline-in-an-office-add-in-1536x565.png 1536w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2019\/07\/use-storage-when-offline-in-an-office-add-in.png 1628w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><span data-contrast=\"auto\">If\u00a0<\/span><span data-contrast=\"auto\">the user experiences a lost connection,\u00a0<\/span><span data-contrast=\"auto\">your\u00a0<\/span><span data-contrast=\"auto\">Office A<\/span><span data-contrast=\"auto\">dd-in\u00a0<\/span><span data-contrast=\"auto\">will keep\u00a0<\/span><span data-contrast=\"auto\">working by caching data in\u00a0<\/span><b><span data-contrast=\"auto\">localStorage<\/span><\/b><span data-contrast=\"auto\">.\u00a0<\/span><span data-contrast=\"auto\">When you detect<\/span><span data-contrast=\"auto\">\u00a0the network\u00a0<\/span><span data-contrast=\"auto\">isn\u2019t<\/span><span data-contrast=\"auto\">\u00a0available, you can use the cache until the network\u00a0<\/span><span data-contrast=\"auto\">is\u00a0<\/span><span data-contrast=\"auto\">back online.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Try the code:\u00a0<\/span><a href=\"https:\/\/github.com\/OfficeDev\/PnP-OfficeAddins\/tree\/master\/Samples\/Excel.OfflineStorageAddin\"><span data-contrast=\"none\">Use storage techniques to access data from an Office Add-in when offline<\/span><\/a><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ul>\n<h2><span data-contrast=\"none\">Authenticate Office\u00a0Add-ins to get file info from Microsoft\u00a0Graph<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<p><img decoding=\"async\" class=\"size-large wp-image-3239 alignnone\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2019\/07\/authenticate-office-add-ins-to-get-file-info-from-graph-1024x364.png\" alt=\"A diagram showing an Excel and Outlook Add-in connecting through auth to Microsoft Graph\" width=\"1024\" height=\"364\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2019\/07\/authenticate-office-add-ins-to-get-file-info-from-graph-1024x364.png 1024w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2019\/07\/authenticate-office-add-ins-to-get-file-info-from-graph-300x107.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2019\/07\/authenticate-office-add-ins-to-get-file-info-from-graph-768x273.png 768w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2019\/07\/authenticate-office-add-ins-to-get-file-info-from-graph-1536x546.png 1536w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2019\/07\/authenticate-office-add-ins-to-get-file-info-from-graph.png 1699w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><span data-contrast=\"auto\">You can connect to web services such as Microsoft Graph\u00a0<\/span><span data-contrast=\"auto\">to work with important data from your Office Add-in.\u00a0<\/span><span data-contrast=\"auto\">The<\/span><span data-contrast=\"auto\">\u00a0following two<\/span><span data-contrast=\"auto\">\u00a0samples show how to\u00a0<\/span><span data-contrast=\"auto\">connect to Microsoft Graph to get\u00a0<\/span><span data-contrast=\"auto\">a list of workbooks stored in OneDrive for Business.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Try the code:\u00a0<\/span><a href=\"https:\/\/github.com\/OfficeDev\/PnP-OfficeAddins\/tree\/master\/Samples\/auth\/Office-Add-in-Microsoft-Graph-ASPNET\"><span data-contrast=\"none\">Office Add-in\u00a0<\/span><span data-contrast=\"none\">to get OneDrive data using Microsoft Graph and MSAL.NET<\/span><\/a><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Try the code:<\/span><span data-contrast=\"auto\">\u00a0<\/span><a href=\"https:\/\/github.com\/OfficeDev\/PnP-OfficeAddins\/tree\/master\/Samples\/auth\/Outlook-Add-in-Microsoft-Graph-ASPNET\"><span data-contrast=\"none\">Outlook\u00a0<\/span><span data-contrast=\"none\">Add-in to get\u00a0<\/span><span data-contrast=\"none\">OneDrive data<\/span><span data-contrast=\"none\">\u00a0using Microsoft Graph and MSAL<\/span><span data-contrast=\"none\">.NET<\/span><\/a><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ul>\n<h2><span data-contrast=\"none\">Contributors from Microsoft<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"none\">Here\u2019s the list of Microsoft people who have been closely involved with the PnP work last month.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">Nancy Wang<\/span><span data-contrast=\"none\">\u00a0@<\/span><span data-contrast=\"none\">nancy<\/span><span data-contrast=\"none\">-wang<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"none\">Albert<\/span><span data-contrast=\"none\">\u00a0Dotson<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">@<\/span><span data-contrast=\"none\">aed3<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"none\">Ricky<\/span><span data-contrast=\"none\">\u00a0Kirkham<\/span><span data-contrast=\"none\">\u00a0@<\/span><span data-contrast=\"none\">Rick-Kirkham<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-aria-posinset=\"4\" data-aria-level=\"1\"><span data-contrast=\"none\">Hidetake Jo<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-aria-posinset=\"5\" data-aria-level=\"1\"><span data-contrast=\"none\">David Chesnut<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ul>\n<h2><span data-contrast=\"none\">About\u00a0<\/span><span data-contrast=\"none\">Office Add-ins\u00a0<\/span><span data-contrast=\"none\">Patterns &amp; Practices (PnP)<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Office Add-ins<\/span><span data-contrast=\"auto\">\u00a0PnP\u00a0<\/span><span data-contrast=\"auto\">is a Microsoft<\/span><span data-contrast=\"auto\">&#8211;<\/span><span data-contrast=\"auto\">led, community driven effort that helps developers extend, build, and provision customizations\u00a0<\/span><span data-contrast=\"auto\">on the Office platform\u00a0<\/span><span data-contrast=\"auto\">the right way by providing guidance and help through official documentation and open source initiatives<\/span><span data-contrast=\"auto\">.<\/span><span data-contrast=\"auto\">\u00a0The source is maintained\u00a0<\/span><span data-contrast=\"auto\">i<\/span><span data-contrast=\"auto\">n GitHub where anyone can participate. You can provide contributions to the samples, reusable components, and documentation.\u00a0<\/span><span data-contrast=\"auto\">Office<\/span><span data-contrast=\"auto\">\u00a0<\/span><span data-contrast=\"auto\">Add-ins\u00a0<\/span><span data-contrast=\"auto\">PnP is owned and coordinated by Office engineering teams, but the work is done by the community for the community.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">You can find\u00a0<\/span><span data-contrast=\"auto\">code\u00a0<\/span><span data-contrast=\"auto\">samples for Office Add-in development\u00a0<\/span><span data-contrast=\"auto\">in<\/span><span data-contrast=\"auto\">\u00a0the\u00a0<\/span><a href=\"https:\/\/github.com\/OfficeDev\/PnP-OfficeAddins\"><span data-contrast=\"none\">Office Add-ins PnP repo<\/span><\/a><span data-contrast=\"auto\">.\u00a0<\/span><span data-contrast=\"auto\">Some samples are also documented in the\u00a0<\/span><a href=\"https:\/\/docs.microsoft.com\/office\/dev\/add-ins\/\"><span data-contrast=\"none\">Office Add-ins docs<\/span><\/a><span data-contrast=\"auto\">, such as\u00a0<\/span><a href=\"https:\/\/docs.microsoft.com\/office\/dev\/add-ins\/excel\/custom-functions-batching\"><span data-contrast=\"none\">Batching custom function calls for a remote service<\/span><\/a><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h3><span data-contrast=\"none\">SharePoint PnP<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Office Add-ins PnP and\u00a0<\/span><span data-contrast=\"auto\">SharePoint PnP\u00a0<\/span><span data-contrast=\"auto\">are both related community driven efforts. SharePoint PnP\u00a0<\/span><span data-contrast=\"auto\">provides community solutions for developers building on SharePoint.\u00a0<\/span><span data-contrast=\"auto\">\u00a0For\u00a0<\/span><span data-contrast=\"auto\">more information about<\/span><span data-contrast=\"auto\">\u00a0SharePoint PnP, see\u00a0<\/span><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/community\/community\"><span data-contrast=\"none\">https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/community\/community<\/span><\/a><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h2><span data-contrast=\"none\">Additional resources<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Get started with Office development by\u00a0<\/span><a href=\"https:\/\/developer.microsoft.com\/en-us\/office\/dev-program\"><span data-contrast=\"none\">joining the Office 365 developer program<\/span><\/a><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Try out some samples and get coding quickly with Office add-ins by\u00a0<\/span><a href=\"https:\/\/www.microsoft.com\/en-us\/garage\/profiles\/script-lab\/\"><span data-contrast=\"none\">downloading Script lab<\/span><\/a><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">Learn more by joining the monthly\u00a0<\/span><a href=\"https:\/\/aka.ms\/officeaddinscommunitycall\"><span data-contrast=\"none\">Office Add-ins community call<\/span><\/a><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re excited to share three\u00a0new code samples for Office Add-ins Patterns and Practices.\u00a0One sample uses storage techniques to access data from an Office Add-in when offline. The other two samples show you how to authenticate Office Add-ins to get file info from Microsoft Graph. Try them out today!<\/p>\n","protected":false},"author":69076,"featured_media":25159,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[11],"tags":[18,12],"class_list":["post-3232","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-office-add-ins","tag-excel","tag-outlook"],"acf":[],"blog_post_summary":"<p>We&#8217;re excited to share three\u00a0new code samples for Office Add-ins Patterns and Practices.\u00a0One sample uses storage techniques to access data from an Office Add-in when offline. The other two samples show you how to authenticate Office Add-ins to get file info from Microsoft Graph. Try them out today!<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/3232","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/69076"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=3232"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/3232\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/25159"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=3232"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=3232"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=3232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}