Microsoft Graph Api Teams and Channels - filesFolder

%3CLINGO-SUB%20id%3D%22lingo-sub-1677534%22%20slang%3D%22en-US%22%3EMicrosoft%20Graph%20Api%20Teams%20and%20Channels%20-%20filesFolder%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1677534%22%20slang%3D%22en-US%22%3E%3CP%3EHello%20everyone%2C%3C%2FP%3E%3CP%3Ewe%20want%20to%20extend%20the%20script%20by%20Tommy%20Lee%20%3CA%20href%3D%22https%3A%2F%2Fwww.lee-ford.co.uk%2Fbackup-team%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.lee-ford.co.uk%2Fbackup-team%3C%2FA%3E%20so%20that%20the%20Team%20Channels%20can%20download%20the%20files%20and%20folders.%3C%2FP%3E%3CP%3EWith%20the%20new%20Microsoft%20Graph%20Api%20Teams%20Beta%20I%20found%20the%20filesFolder%20see%20%22%3CA%20href%3D%22https%3A%2F%2Fgraph.microsoft.com%2Fbeta%2Fteams%2F%24Teamsid%2Fchannels%2F%24(%24channelId)%2FfilesFolder%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgraph.microsoft.com%2Fbeta%2Fteams%2F%24Teamsid%2Fchannels%2F%24(%24channelId)%2FfilesFolder%3C%2FA%3E%22.%20I%20would%20like%20to%20use%20this%20so%20that%20we%20(see%20script%20below)%20can%20download%20all%20files%20and%20folders%20or%20am%20I%20on%20the%20wrong%20way%3F%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3E%20%20%20%20%20%20%20%20%20%20%20%20%23%20List%20all%20items%20in%20drive%0A%20%20%20%20%20%20%20%20%20%20%20%20%24itemList%20%3D%20Invoke-GraphAPICall%20-URI%20%22https%3A%2F%2Fgraph.microsoft.com%2Fv1.0%2Fgroups%2F%24(%24chosenTeam.id)%2Fdrive%2Flist%2Fitems%3F%60%24expand%3DDriveItem%22%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20Loop%20through%20items%0A%20%20%20%20%20%20%20%20%20%20%20%20%24itemList.value%20%7C%20ForEach-Object%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24item%20%3D%20Invoke-GraphAPICall%20-URI%20%22https%3A%2F%2Fgraph.microsoft.com%2Fv1.0%2Fgroups%2F%24(%24chosenTeam.id)%2Fdrive%2Fitems%2F%24(%24_.DriveItem.id)%22%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20If%20item%20can%20be%20downloaded%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(%24item.%22%40microsoft.graph.downloadUrl%22)%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20Get%20path%20in%20relation%20to%20drive%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24itemPath%20%3D%20%24item.parentReference.path%20-replace%20%22%2Fdrive%2Froot%3A%22%2C%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24fullFolderPath%20%3D%20%22%24Path%2F_Backup_Team_Temp_%2FFiles%2F%24itemPath%22%20-replace%20%22%2F%2F%22%2C%20%22%2F%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24fullPath%20%3D%20%22%24Path%2F_Backup_Team_Temp_%2FFiles%2F%24itemPath%2F%24(%24item.name)%22%20-replace%20%22%2F%2F%22%2C%20%22%2F%22%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20Create%20folder%20to%20maintain%20structure%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20New-Item%20-ItemType%20Directory%20-Force%20-Path%20%24fullFolderPath%20%7C%20Out-Null%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20Download%20file%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Write-Host%20%22%20%20%20%20-%20Saving%20%24(%24item.name)...%20%22%20-NoNewline%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Invoke-WebRequest%20-Uri%20%24item.%22%40microsoft.graph.downloadUrl%22%20-OutFile%20%24fullPath%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Write-Host%20%22SUCCESS%22%20-ForegroundColor%20Green%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20catch%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Write-Host%20%22FAILED%22%20-ForegroundColor%20Red%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20else%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20Write-Host%20%22%20-%20Excluding%20Files...%22%0A%0A%20%20%20%20%20%20%20%20%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1677534%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EMicrosoft%20Graph%20Api%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3ETeams%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3ETEAMS%20HYPERLINK%20ISSUES%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1752372%22%20slang%3D%22en-US%22%3ERe%3A%20Microsoft%20Graph%20Api%20Teams%20and%20Channels%20-%20filesFolder%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1752372%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F706578%22%20target%3D%22_blank%22%3E%40MarkusLosco%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EPlease%20go%20through%20below%20graph%20api%20beta%20link%20for%20download%20files.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fgraph%2Fapi%2Fdriveitem-get-content%3Fview%3Dgraph-rest-beta%26amp%3Btabs%3Dhttp%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fgraph%2Fapi%2Fdriveitem-get-content%3Fview%3Dgraph-rest-beta%26amp%3Btabs%3Dhttp%3C%2FA%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E
Highlighted
New Contributor

Hello everyone,

we want to extend the script by Tommy Lee https://www.lee-ford.co.uk/backup-team so that the Team Channels can download the files and folders.

With the new Microsoft Graph Api Teams Beta I found the filesFolder see "https://graph.microsoft.com/beta/teams/$Teamsid/channels/$($channelId)/filesFolder". I would like to use this so that we (see script below) can download all files and folders or am I on the wrong way? 

 

 

 

 

 

 

            # List all items in drive
            $itemList = Invoke-GraphAPICall -URI "https://graph.microsoft.com/v1.0/groups/$($chosenTeam.id)/drive/list/items?`$expand=DriveItem"

            # Loop through items
            $itemList.value | ForEach-Object {

                $item = Invoke-GraphAPICall -URI "https://graph.microsoft.com/v1.0/groups/$($chosenTeam.id)/drive/items/$($_.DriveItem.id)"

                # If item can be downloaded
                if ($item."@microsoft.graph.downloadUrl") {

                    # Get path in relation to drive

                    $itemPath = $item.parentReference.path -replace "/drive/root:", ""
                    $fullFolderPath = "$Path/_Backup_Team_Temp_/Files/$itemPath" -replace "//", "/"
                    $fullPath = "$Path/_Backup_Team_Temp_/Files/$itemPath/$($item.name)" -replace "//", "/"

                    # Create folder to maintain structure
                    New-Item -ItemType Directory -Force -Path $fullFolderPath | Out-Null

                    # Download file
                    Write-Host "    - Saving $($item.name)... " -NoNewline
                    try {

                        Invoke-WebRequest -Uri $item."@microsoft.graph.downloadUrl" -OutFile $fullPath
                        Write-Host "SUCCESS" -ForegroundColor Green

                    }
                    catch {

                        Write-Host "FAILED" -ForegroundColor Red

                
                    }
            
                }

            }

        }
        else {

            Write-Host " - Excluding Files..."

        }

 

 

 

1 Reply
Highlighted