{"id":14007,"date":"2021-09-10T21:00:10","date_gmt":"2021-09-10T12:00:10","guid":{"rendered":"https:\/\/www.ka-net.org\/blog\/?p=14007"},"modified":"2021-09-17T11:37:43","modified_gmt":"2021-09-17T02:37:43","slug":"powershellgoogle-api%e3%81%ae%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%83%88%e3%83%bc%e3%82%af%e3%83%b3%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b","status":"publish","type":"post","link":"https:\/\/www.ka-net.org\/blog\/?p=14007","title":{"rendered":"[PowerShell]Google API\u306e\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\u3092\u53d6\u5f97\u3059\u308b"},"content":{"rendered":"<p>Power Automate Desktop(PAD)\u3067Google \u30c9\u30e9\u30a4\u30d6\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30ed\u30fc\u3092\u4f5c\u6210\u3057\u305f\u3044\u306e\u3067\u3059\u304c\u3001<a href=\"https:\/\/support.google.com\/a\/answer\/7491144?hl=ja\" title=\"\u30d1\u30bd\u30b3\u30f3\u7248 Google \u30c9\u30e9\u30a4\u30d6\u3092\u5c0e\u5165\u3059\u308b - Google Workspace \u7ba1\u7406\u8005 \u30d8\u30eb\u30d7\" target=\"_blank\" rel=\"noopener\">\u30d1\u30bd\u30b3\u30f3\u7248 Google \u30c9\u30e9\u30a4\u30d6<\/a>\u306f\u4f7f\u7528\u3057\u305f\u3053\u3068\u304c\u7121\u3044\u306e\u3067Google Drive API\u3092\u4f7f\u3046\u3053\u3068\u306b\u3057\u307e\u3059\u3002<\/p>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/developers.google.com\/drive\/api\/v3\/about-sdk\" target=\"_blank\" rel=\"external nofollow noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=developers.google.com\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">Google Developers<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/pz-linkcard\/cache\/9c6ef51f2bcf3e0e6b1b6e7a67bef84d056f8c2e0fbbdb943781c0e444876e1c.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">Introduction to Google Drive API \u00a0|\u00a0 Google Developers<\/div><div class=\"lkc-url\" title=\"https:\/\/developers.google.com\/drive\/api\/v3\/about-sdk\">https:\/\/developers.google.com\/drive\/api\/v3\/about-sdk<\/div><div class=\"lkc-excerpt\">The Drive REST API lets you create web apps that access files stored in Google Drive.<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p>\u4eca\u56de\u306f\u305d\u306e\u524d\u6bb5\u968e\u3068\u3057\u3066\u3001API\u3092\u547c\u3073\u51fa\u3059\u305f\u3081\u306b\u5fc5\u8981\u306a\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\u3092PowerShell\u3067\u53d6\u5f97\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<h4 class=\"style4a\">\u4e8b\u524d\u6e96\u5099<\/h4>\n<p>API\u3092\u547c\u3073\u51fa\u3059\u969b\u306b\u30af\u30e9\u30a4\u30a2\u30f3\u30c8ID\u3068\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u304c\u5fc5\u8981\u306b\u306a\u308b\u305f\u3081\u3001\u4e0b\u8a18\u8a18\u4e8b\u3092\u53c2\u8003\u306b\u3057\u3066\u4e8b\u524d\u306b\u6e96\u5099\u3057\u3066\u304a\u304d\u307e\u3059\u3002<br \/>\n\u6570\u5e74\u524d\u306e\u8a18\u4e8b\u3067\u3001\u3044\u307e\u3068\u306f\u4e00\u90e8\u5185\u5bb9\u304c\u7570\u306a\u3063\u3066\u3044\u308b\u90e8\u5206\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u5927\u307e\u304b\u306a\u4f5c\u696d\u306f\u5909\u308f\u3063\u3066\u3044\u307e\u305b\u3093\u3002<\/p>\n<div class=\"cardlink\"><a href=\"https:\/\/www.ka-net.org\/blog\/?p=10820\"><div class=\"cardlink_thumbnail\"><img src='https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/eyecatch-Google-120x120.png' alt='\u30102018\u5e749\u6708\u7248\u3011Google API Console\u3067\u30af\u30e9\u30a4\u30a2\u30f3\u30c8ID\u3068\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u3092\u53d6\u5f97\u3059\u308b\u65b9\u6cd5' width=120 height=120 \/><\/a><\/div><div class=\"cardlink_content\"><span class=\"timestamp\">2018.09.06<\/span><div class=\"cardlink_title\"><a href=\"https:\/\/www.ka-net.org\/blog\/?p=10820\">\u30102018\u5e749\u6708\u7248\u3011Google API Console\u3067\u30af\u30e9\u30a4\u30a2\u30f3\u30c8ID\u3068\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u3092\u53d6\u5f97\u3059\u308b\u65b9\u6cd5 <\/a><\/div><div class=\"cardlink_excerpt\">Google\u306eAPI\u3092\u547c\u3073\u51fa\u3059\u306b\u3042\u305f\u308a\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8ID\u3068\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u304c\u5fc5\u8981\u306a\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\r\n\u5f53\u30d6\u30ed\u30b0\u3067\u3082\u305d\u306e\u53d6\u5f97\u65b9\u6cd5\u306b\u3064\u3044\u3066\u3044\u304f\u3064\u304b\u8a18\u4e8b\u3092\u66f8\u3044\u3066\u304d\u305f\u306e\u3067\u3059\u304c(\u4e0b\u8a18\u53c2\u7167)\u3001\u7ba1\u7406\u753b\u9762\u306eUI\u306e\u5909\u66f4\u306b\u3088\u308a\u3001\u53e4\u3044\u60c5\u5831\u304c\u4f7f\u3048\u306a\u304f\u306a\u308b\u3053\u3068\u304c\u3088\u304f\u3042\u308a\u307e\u3059\u3002\r...<\/div><\/div><div class=\"cardlink_footer\"><\/div><\/div>\n<p>\u4eca\u56de\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u7a2e\u985e\u3092\u300c\u30c7\u30b9\u30af\u30c8\u30c3\u30d7 \u30a2\u30d7\u30ea\u300d\u3068\u3057\u3001<a href=\"https:\/\/console.developers.google.com\/apis\/library\" title=\"API \u30e9\u30a4\u30d6\u30e9\u30ea\" target=\"_blank\" rel=\"noopener\">API \u30e9\u30a4\u30d6\u30e9\u30ea<\/a>\u304b\u3089Google Drive API\u3092\u6709\u52b9\u306b\u3057\u3066\u304a\u304d\u307e\u3057\u305f\u3002<\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_01.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_01.jpg\" alt=\"\" width=\"569\" height=\"446\" class=\"alignnone size-full wp-image-14008\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_01.jpg 569w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_01-300x235.jpg 300w\" sizes=\"auto, (max-width: 569px) 100vw, 569px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_02.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_02.jpg\" alt=\"\" width=\"612\" height=\"437\" class=\"alignnone size-full wp-image-14009\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_02.jpg 612w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_02-300x214.jpg 300w\" sizes=\"auto, (max-width: 612px) 100vw, 612px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_03.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_03.jpg\" alt=\"\" width=\"666\" height=\"232\" class=\"alignnone size-full wp-image-14010\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_03.jpg 666w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_03-300x105.jpg 300w\" sizes=\"auto, (max-width: 666px) 100vw, 666px\" \/><\/a><\/p>\n<h4 class=\"style4a\">.NET\u7528\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u6e96\u5099<\/h4>\n<p>\u7c21\u5358\u306b\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\u3092\u53d6\u5f97\u3067\u304d\u308b\u30e9\u30a4\u30d6\u30e9\u30ea(\u5b9f\u884c\u3059\u308b\u306e\u306b\u5fc5\u8981\u306a\u3082\u306e\u3082\u542b\u3080)\u304cNuget\u3067\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u3001\u4e8b\u524d\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<ol>\n<li>Google.Apis.dll<\/li>\n<li>Google.Apis.Core.dll<\/li>\n<li>Google.Apis.Auth.dll<\/li>\n<li>Newtonsoft.Json.dll<\/li>\n<\/ol>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/www.nuget.org\/packages\/Google.Apis\/\" target=\"_blank\" rel=\"external nofollow noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=www.nuget.org\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">www.nuget.org<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/pz-linkcard\/cache\/dd5e67334c6f933cb53be5c0b34af99d30fc51a0fd68517b3740dfaf9055b9d7.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">Google.Apis 1.55.0<\/div><div class=\"lkc-url\" title=\"https:\/\/www.nuget.org\/packages\/Google.Apis\/\">https:\/\/www.nuget.org\/packages\/Google.Apis\/<\/div><div class=\"lkc-excerpt\">The Google APIs Client Library is a runtime client for working with Google services.The library supports service requests, media upload and download, etc.    Supported Platforms:- .NET Framework 4.5+- NetStandard1.3, providing .NET Core support<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/www.nuget.org\/packages\/Google.Apis.Core\/\" target=\"_blank\" rel=\"external nofollow noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=www.nuget.org\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">www.nuget.org<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/pz-linkcard\/cache\/a19fdbc775ee6e90a1387cfe0e88af4cd03c1414e434981df80d93d18d434706.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">Google.Apis.Core 1.55.0<\/div><div class=\"lkc-url\" title=\"https:\/\/www.nuget.org\/packages\/Google.Apis.Core\/\">https:\/\/www.nuget.org\/packages\/Google.Apis.Core\/<\/div><div class=\"lkc-excerpt\">The Google APIs Core Library contains the Google APIs HTTP layer, JSON support, Data-store, logging and so on.Supported Platforms:- .NET Framework 4.5+- NetStandard1.3, providing .NET Core support<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/www.nuget.org\/packages\/Google.Apis.Auth\/\" target=\"_blank\" rel=\"external nofollow noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=www.nuget.org\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">www.nuget.org<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/pz-linkcard\/cache\/0393cd43c2f455f4afd6713b7c245161628b644945a4f37e1faf2e77e7d18d6b.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">Google.Apis.Auth 1.55.0<\/div><div class=\"lkc-url\" title=\"https:\/\/www.nuget.org\/packages\/Google.Apis.Auth\/\">https:\/\/www.nuget.org\/packages\/Google.Apis.Auth\/<\/div><div class=\"lkc-excerpt\">The Google APIs Client Library is a runtime client for working with Google services.This package includes auth components like user-credential, authorization code flow, etc. for making authenticated calls using the OAuth2 spec.Supported Platforms:- .NET Framework 4.5- .NET Framework 4.6.1- .Net Standard 1.3- .Net Standard 2.0<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/www.nuget.org\/packages\/Newtonsoft.Json\/\" target=\"_blank\" rel=\"external nofollow noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=www.nuget.org\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">www.nuget.org<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/pz-linkcard\/cache\/ab7dbcf258323a4037445da3cf7a8192faba5696e63208e8c04c6c99a0b31545.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">Newtonsoft.Json 13.0.1<\/div><div class=\"lkc-url\" title=\"https:\/\/www.nuget.org\/packages\/Newtonsoft.Json\/\">https:\/\/www.nuget.org\/packages\/Newtonsoft.Json\/<\/div><div class=\"lkc-excerpt\">Json.NET is a popular high-performance JSON framework for .NET<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u65b9\u6cd5\u306f\u8272\u3005\u3042\u308a\u307e\u3059\u304c\u3001\u79c1\u306f\u304a\u624b\u8efd\u306a<a href=\"https:\/\/docs.microsoft.com\/ja-jp\/nuget\/consume-packages\/install-use-packages-nuget-cli\" title=\"nuget.exe CLI \u3092\u4f7f\u7528\u3057\u3066 NuGet \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u7ba1\u7406\u3059\u308b | Microsoft Docs\" target=\"_blank\" rel=\"noopener\">\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3<\/a>\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u591a\u3044\u3067\u3059\u3002<\/p>\n<h4 class=\"style4a\">Google API\u306e\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\u3092\u53d6\u5f97\u3059\u308bPowerShell\u30b9\u30af\u30ea\u30d7\u30c8<\/h4>\n<p>\u6e96\u5099\u304c\u3067\u304d\u305f\u3089\u3044\u3088\u3044\u3088\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<br \/>\n\u30b3\u30fc\u30c9\u5185\u306e\u30af\u30e9\u30a4\u30a2\u30f3\u30c8ID\u3068\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u306f\u4e0a\u8a18\u624b\u9806\u3067\u53d6\u5f97\u3057\u305f\u3082\u306e\u306b\u7f6e\u304d\u63db\u3048\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"brush: powershell; title: ; notranslate\" title=\"\">&#x5B;void]&#x5B;Reflection.Assembly]::LoadFile(&quot;C:\\System\\Lib\\Newtonsoft.Json.dll&quot;)\r\n&#x5B;void]&#x5B;Reflection.Assembly]::LoadFile(&quot;C:\\System\\Lib\\Google.Apis.dll&quot;)\r\n&#x5B;void]&#x5B;Reflection.Assembly]::LoadFile(&quot;C:\\System\\Lib\\Google.Apis.Core.dll&quot;)\r\n&#x5B;void]&#x5B;Reflection.Assembly]::LoadFile(&quot;C:\\System\\Lib\\Google.Apis.Auth.dll&quot;)\r\n$client_secrets = New-Object Google.Apis.Auth.OAuth2.ClientSecrets\r\n$client_secrets.ClientId = &quot;(\u30af\u30e9\u30a4\u30a2\u30f3\u30c8ID)&quot;\r\n$client_secrets.ClientSecret = &quot;(\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30b7\u30fc\u30af\u30ec\u30c3\u30c8)&quot;\r\n&#x5B;String&#x5B;]]$scopes = @(&quot;https:\/\/www.googleapis.com\/auth\/drive&quot;)\r\n$fds = New-Object Google.Apis.Util.Store.FileDataStore(&quot;C:\\wk\\GoogleAPI\\token.json&quot;, $true)\r\n$gwab = &#x5B;Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker]::AuthorizeAsync($client_secrets, $scopes, &quot;user&quot;, &#x5B;System.Threading.CancellationToken]::None, $fds)\r\n$res = $gwab.Result<\/pre>\n<p>\u4e0a\u8a18\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\u554f\u984c\u304c\u7121\u3051\u308c\u3070\u30ed\u30b0\u30a4\u30f3\u753b\u9762\u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067\u3001\u30ed\u30b0\u30a4\u30f3\u3068\u627f\u8a8d\u3092\u884c\u3044\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_04.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_04.jpg\" alt=\"\" width=\"539\" height=\"581\" class=\"alignnone size-full wp-image-14011\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_04.jpg 539w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_04-278x300.jpg 278w\" sizes=\"auto, (max-width: 539px) 100vw, 539px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_05.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_05.jpg\" alt=\"\" width=\"519\" height=\"607\" class=\"alignnone size-full wp-image-14012\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_05.jpg 519w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_05-257x300.jpg 257w\" sizes=\"auto, (max-width: 519px) 100vw, 519px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_06.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_06.jpg\" alt=\"\" width=\"527\" height=\"607\" class=\"alignnone size-full wp-image-14013\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_06.jpg 527w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_06-260x300.jpg 260w\" sizes=\"auto, (max-width: 527px) 100vw, 527px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_07.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_07.jpg\" alt=\"\" width=\"745\" height=\"440\" class=\"alignnone size-full wp-image-14014\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_07.jpg 745w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_07-300x177.jpg 300w\" sizes=\"auto, (max-width: 745px) 100vw, 745px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_08.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_08.jpg\" alt=\"\" width=\"666\" height=\"255\" class=\"alignnone size-full wp-image-14015\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_08.jpg 666w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_08-300x115.jpg 300w\" sizes=\"auto, (max-width: 666px) 100vw, 666px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_09.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_09.jpg\" alt=\"\" width=\"485\" height=\"783\" class=\"alignnone size-full wp-image-14016\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_09.jpg 485w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_09-186x300.jpg 186w\" sizes=\"auto, (max-width: 485px) 100vw, 485px\" \/><\/a><\/p>\n<p>\u7121\u4e8b\u306b\u627f\u8a8d\u304c\u884c\u308f\u308c\u308b\u3068\u3001<a href=\"https:\/\/googleapis.dev\/dotnet\/Google.Apis\/latest\/api\/Google.Apis.Util.Store.FileDataStore.html\" title=\"Class FileDataStore | Google API support libraries\" target=\"_blank\" rel=\"noopener\">FileDataStore<\/a>\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u6307\u5b9a\u3057\u305f\u30d1\u30b9(\u4e0a\u8a18\u30b3\u30fc\u30c9\u3067\u306f\u300cC:\\wk\\GoogleAPI\\token.json\u300d)\u306b\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\u3084\u30ea\u30d5\u30ec\u30c3\u30b7\u30e5\u30c8\u30fc\u30af\u30f3\u304c\u66f8\u304b\u308c\u305fJSON\u30d5\u30a1\u30a4\u30eb\u304c\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_10.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_10.jpg\" alt=\"\" width=\"751\" height=\"325\" class=\"alignnone size-full wp-image-14017\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_10.jpg 751w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/PowerShell_GetGoogleAPIToken_10-300x130.jpg 300w\" sizes=\"auto, (max-width: 751px) 100vw, 751px\" \/><\/a><\/p>\n<p>\u4e0a\u8a18\u30b3\u30fc\u30c9\u306e\u3088\u3046\u306b\u30af\u30e9\u30a4\u30a2\u30f3\u30c8ID\u3068\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u3092\u30cf\u30fc\u30c9\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3057\u305f\u304f\u306a\u3044\u5834\u5408\u306f\u3001\u4e0b\u8a18\u30da\u30fc\u30b8\u306b\u3042\u308b\u3088\u3046\u306b<a href=\"https:\/\/console.cloud.google.com\/apis\/credentials\" title=\"Google Cloud Platform\" target=\"_blank\" rel=\"noopener\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30da\u30fc\u30b8<\/a>\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u308b<a href=\"https:\/\/developers.google.com\/api-client-library\/dotnet\/guide\/aaa_client_secrets\" title=\"Client Secrets  |  API Client Library for .NET  |  Google Developers\" target=\"_blank\" rel=\"noopener\">client_secrets.json<\/a>\u30d5\u30a1\u30a4\u30eb\u3092FileStream\u3067\u8aad\u307f\u8fbc\u3093\u3067\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/developers.google.com\/api-client-library\/dotnet\/guide\/aaa_oauth#installed-applications\" target=\"_blank\" rel=\"external nofollow noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=developers.google.com\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">Google Developers<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/pz-linkcard\/cache\/930b557adf7265019c6e6d0c26a8b627b1b1bd9fd9abda5f8453a400fa41d687.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">OAuth 2.0 \u00a0|\u00a0 API Client Library for .NET \u00a0|\u00a0 Google Developers<\/div><div class=\"lkc-url\" title=\"https:\/\/developers.google.com\/api-client-library\/dotnet\/guide\/aaa_oauth#installed-applications\">https:\/\/developers.google.com\/api-client-library\/dotnet\/guide\/aaa_oauth#installed-applications<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<div id=\"single_banner_area2\" class=\"clearfix one_banner\">\n<div class=\"single_banner single_banner_left\">\n<script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\r\n<!-- \u8a18\u4e8b\u4e2d(\u30c7\u30a3\u30b9\u30d7\u30ec\u30a4\u5e83\u544a\u30e6\u30cb\u30c3\u30c8) -->\r\n<ins class=\"adsbygoogle\"\r\n     style=\"display:block\"\r\n     data-ad-client=\"ca-pub-7306936664602087\"\r\n     data-ad-slot=\"5429724765\"\r\n     data-ad-format=\"auto\"\r\n     data-full-width-responsive=\"true\"><\/ins>\r\n<script>\r\n     (adsbygoogle = window.adsbygoogle || []).push({});\r\n<\/script>\n<\/div>\n<div class=\"single_banner single_banner_right\">\n<a href=\"\" target=\"_blank\"><img decoding=\"async\" src=\"\" alt=\"\" title=\"\" \/><\/a>\n<\/div>\n<\/div>\n\n<h4 class=\"style4a\">\u95a2\u9023\u8a18\u4e8b<\/h4>\n<div class=\"cardlink\"><a href=\"https:\/\/www.ka-net.org\/blog\/?p=14020\"><div class=\"cardlink_thumbnail\"><img src='https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/eyecatch-PowerAutomateDesktop-120x120.jpg' alt='[Power Automate Desktop]Google API\u306e\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\u3092\u53d6\u5f97\u3059\u308b\u30d5\u30ed\u30fc' width=120 height=120 \/><\/a><\/div><div class=\"cardlink_content\"><span class=\"timestamp\">2021.09.14<\/span><div class=\"cardlink_title\"><a href=\"https:\/\/www.ka-net.org\/blog\/?p=14020\">[Power Automate Desktop]Google API\u306e\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\u3092\u53d6\u5f97\u3059\u308b\u30d5\u30ed\u30fc <\/a><\/div><div class=\"cardlink_excerpt\">\u524d\u56de\u306e\u8a18\u4e8b\u3067Google API\u306e\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\u3092\u53d6\u5f97\u3059\u308bPowerShell\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u7d39\u4ecb\u3057\u307e\u3057\u305f\u3002\u4eca\u56de\u306f\u305d\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u3092Power Automate Desktop(PAD)\u306e\u30d5\u30ed\u30fc\u306b\u7d44\u307f\u8fbc\u3093\u3067\u307f\u3088\u3046\u3068\u601d\u3044\u307e\u3059\u3002\r\n\r\nGoogle API\u306e\u30a2\u30af\u30bb\u30b9\u30c8...<\/div><\/div><div class=\"cardlink_footer\"><\/div><\/div>\n<div class=\"cardlink\"><a href=\"https:\/\/www.ka-net.org\/blog\/?p=14059\"><div class=\"cardlink_thumbnail\"><img src='https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/eyecatch-PowerAutomateDesktop-120x120.jpg' alt='[Power Automate Desktop]Google Drive\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30ed\u30fc' width=120 height=120 \/><\/a><\/div><div class=\"cardlink_content\"><span class=\"timestamp\">2021.09.17<\/span><div class=\"cardlink_title\"><a href=\"https:\/\/www.ka-net.org\/blog\/?p=14059\">[Power Automate Desktop]Google Drive\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30ed\u30fc <\/a><\/div><div class=\"cardlink_excerpt\">\u524d\u56de\u3068\u524d\u3005\u56de\u306e\u8a18\u4e8b\u3067Google Drive API\u306e\u5b9f\u884c\u306b\u5fc5\u8981\u306a\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\u306e\u53d6\u5f97\u307e\u3067\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f\u3002\r\n\u4eca\u56de\u306f\u3044\u3088\u3044\u3088Power Automate Desktop(PAD)\u3067Google Drive\u306e\u6307\u5b9a\u3057\u305f\u30d5\u30a9\u30eb\u30c0\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u307f...<\/div><\/div><div class=\"cardlink_footer\"><\/div><\/div>\n<h4 class=\"style4a\">\u53c2\u8003Web\u30b5\u30a4\u30c8<\/h4>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/developers.google.com\/drive\/api\/v3\/about-sdk\" target=\"_blank\" rel=\"external nofollow noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=developers.google.com\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">Google Developers<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/pz-linkcard\/cache\/9c6ef51f2bcf3e0e6b1b6e7a67bef84d056f8c2e0fbbdb943781c0e444876e1c.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">Introduction to Google Drive API \u00a0|\u00a0 Google Developers<\/div><div class=\"lkc-url\" title=\"https:\/\/developers.google.com\/drive\/api\/v3\/about-sdk\">https:\/\/developers.google.com\/drive\/api\/v3\/about-sdk<\/div><div class=\"lkc-excerpt\">The Drive REST API lets you create web apps that access files stored in Google Drive.<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/codezine.jp\/article\/detail\/7595\" target=\"_blank\" rel=\"external nofollow noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=codezine.jp\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">CodeZine<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/pz-linkcard\/cache\/9d2a5bb71b911c195e2897efe7b1012580e94d22d4e6b9e04dbae59ece568351.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">.NET\u304b\u3089Google Analytics API\u3092\u547c\u3073\u51fa\u3057\u3001\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3059\u308b<\/div><div class=\"lkc-url\" title=\"https:\/\/codezine.jp\/article\/detail\/7595\">https:\/\/codezine.jp\/article\/detail\/7595<\/div><div class=\"lkc-excerpt\">\u3000\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001C#\u3068ASP.NET MVC\u304b\u3089Google Analytics API\u3092\u547c\u3073\u51fa\u3059\u65b9\u6cd5\u306b\u3064\u3044\u3066\u7d39\u4ecb\u3057\u307e\u3059\u3002API\u3092\u547c\u3073\u51fa\u3059\u3053\u3068\u3067Google\u306e\u30b5\u30fc\u30d3\u30b9\u306e\u60c5\u5831\u3092.NET\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u304b\u3089\u5229\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u524d\u7de8\u3067\u306f\u3001Google Cloud Console\u3067\u306e\u8a2d\u5b9a\u3001Visual Studio\u3067\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4f5c\u6210\u3068\u3044\u3063\u305f\u6e96\u5099\u3092\u884c\u3044\u307e\u3057\u305f\u3002\u5f8c\u7de8\u306b\u5f53\u305f\u308b\u672c\u7a3f\u3067\u306f\u3001\u30b3\u30fc\u30c9\u3092\u8a18\u8ff0\u3057\u3001\u5b9f\u969b\u306b\u52d5\u304b\u3057\u3066\u307f\u308b\u3068\u3053\u308d\u307e\u3067\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n<div class=\"linkcard\"><div class=\"lkc-external-wrap\"><a class=\"lkc-link no_icon\" href=\"https:\/\/stackoverflow.com\/questions\/56571352\/issue-with-authenticating-to-google-api-or-issue-with-app\" target=\"_blank\" rel=\"external nofollow noopener\"><div class=\"lkc-card\"><div class=\"lkc-info\"><div class=\"lkc-favicon\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.google.com\/s2\/favicons?domain=stackoverflow.com\" alt=\"\" width=\"16\" height=\"16\" \/><\/div><div class=\"lkc-domain\">Stack Overflow<\/div><\/div><div class=\"lkc-content\"><figure class=\"lkc-thumbnail\"><img decoding=\"async\" class=\"lkc-thumbnail-img\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/pz-linkcard\/cache\/93927fc1e64dd3e5b86b87f2a89b3b29bc3a30e0e6b7a2312393a2a6226faaba.jpeg\" width=\"100px\" height=\"108px\" alt=\"\" \/><\/figure><div class=\"lkc-title\">Issue with authenticating to google api or issue with app<\/div><div class=\"lkc-url\" title=\"https:\/\/stackoverflow.com\/questions\/56571352\/issue-with-authenticating-to-google-api-or-issue-with-app\">https:\/\/stackoverflow.com\/questions\/56571352\/issue-with-authenticating-to-google-api-or-issue-with-app<\/div><div class=\"lkc-excerpt\">So, just a heads up, this is my first time working with google&#x27;s apis and developer console, so forgive me if I missed something obvious that a more seasoned google developer would deem common sense.<\/div><\/div><div class=\"clear\"><\/div><\/div><\/a><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"Power Automate Desktop(PAD)\u3067Google \u30c9\u30e9\u30a4\u30d6\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30ed\u30fc\u3092\u4f5c\u6210\u3057\u305f\u3044\u306e\u3067\u3059\u304c\u3001\u30d1\u30bd\u30b3\u30f3\u7248 Google \u30c9\u30e9\u30a4\u30d6\u306f\u4f7f\u7528\u3057\u305f\u3053\u3068\u304c\u7121\u3044\u306e\u3067Google Drive A [&hellip;]","protected":false},"author":1,"featured_media":7127,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"[[PowerShell]Google API\u306e\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\u3092\u53d6\u5f97\u3059\u308b]","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[94,126],"tags":[],"class_list":["post-14007","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell","category-google"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/eyecatch-PowerShell.png","jetpack_shortlink":"https:\/\/wp.me\/p4UZZr-3DV","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/14007","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14007"}],"version-history":[{"count":4,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/14007\/revisions"}],"predecessor-version":[{"id":14095,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/14007\/revisions\/14095"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/media\/7127"}],"wp:attachment":[{"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14007"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14007"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14007"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}