Public/Add-AndroidApplication.ps1
<#
.COPYRIGHT Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. See https://github.com/microsoftgraph/powershell-intune-samples/blob/master/LICENSE for license information. #> Function Add-AndroidApplication() { <# .SYNOPSIS This function is used to add an Android application using the Graph API REST interface .DESCRIPTION The function connects to the Graph API Interface and adds an Android application from the itunes store .EXAMPLE Add-AndroidApplication -JSON $JSON -IconURL pathtourl Adds an Android application into Intune using an icon from a URL .NOTES NAME: Add-AndroidApplication #> [cmdletbinding()] param ( $JSON, $IconURL ) $graphApiVersion = "Beta" $App_resource = "deviceAppManagement/mobileApps" try { if (!$JSON) { write-host "No JSON was passed to the function, provide a JSON variable" -f Red break } if ($IconURL) { write-verbose "Icon specified: $IconURL" if (!(test-path "$IconURL")) { write-host "Icon Path '$IconURL' doesn't exist..." -ForegroundColor Red Write-Host "Please specify a valid path..." -ForegroundColor Red break } $iconResponse = Invoke-WebRequest "$iconUrl" $base64icon = [System.Convert]::ToBase64String($iconResponse.Content) $iconExt = ([System.IO.Path]::GetExtension("$iconURL")).replace(".", "") $iconType = "image/$iconExt" Write-Verbose "Updating JSON to add Icon Data" $U_JSON = ConvertFrom-Json $JSON $U_JSON.largeIcon.type = "$iconType" $U_JSON.largeIcon.value = "$base64icon" $JSON = ConvertTo-Json $U_JSON Write-Verbose $JSON Test-JSON -JSON $JSON $uri = "https://graph.microsoft.com/$graphApiVersion/$($App_resource)" Invoke-RestMethod -Uri $uri -Method Post -ContentType "application/json" -Body $JSON -Headers $authToken } else { Test-JSON -JSON $JSON $uri = "https://graph.microsoft.com/$graphApiVersion/$($App_resource)" Invoke-RestMethod -Uri $uri -Method Post -ContentType "application/json" -Body $JSON -Headers $authToken } } catch { $ex = $_.Exception $errorResponse = $ex.Response.GetResponseStream() $reader = New-Object System.IO.StreamReader($errorResponse) $reader.BaseStream.Position = 0 $reader.DiscardBufferedData() $responseBody = $reader.ReadToEnd(); Write-Host "Response content:`n$responseBody" -f Red Write-Error "Request to $Uri failed with HTTP Status $($ex.Response.StatusCode) $($ex.Response.StatusDescription)" break } } |