Извлечение отчетов Skype для бизнеса из Microsoft Graph возвращает заголовки отчетов, но без данных - PullRequest
0 голосов
/ 09 ноября 2018

Около месяца назад я написал скрипт на Powershell для ежедневного сбора подробных данных об использовании пользователями из Skype для бизнеса. В то время, когда я это написал, скрипт успешно вытащил данные и записал их в файл csv. Теперь, когда я запускаю этот скрипт, вызов API успешно выполняется и возвращает заголовки отчетов, но не возвращает никаких данных. Кто-нибудь замечал какие-либо проблемы со стабильностью при использовании конечных точек отчетов SkypeForBusiness?

код для справки:

    $redirectUrl = "https://localhost:8000"
$GraphAPIURI="https://graph.microsoft.com"
$client_id = "app-id"
$client_secret = "app-secret"
$delimiterHeader="sep=;`n"

$D7UserDetailOutput= "D7UserDetail.csv"
$D30UserDetailOutput= "D30UserDetail.csv"
$D90UserDetailOutput= "D90UserDetail.csv"
$D180UserDetailOutput= "D180UserDetail.csv"


Add-Type -AssemblyName System.Web

$tenantid="tenantid"

$url="https://login.microsoftonline.com/$tenantid/oauth2/v2.0/token"
$Auth = 
        Invoke-RestMethod   -Method post                                   `
                            -ContentType application/x-www-form-urlencoded `
                            -Uri $url                                      `
                            -body "client_id=$client_id&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret=$client_secret&grant_type=client_credentials"


    $D7Detail=Invoke-RestMethod   -Headers @{Authorization =("Bearer "+ $Auth.access_token)} `
                            -Uri "https://graph.microsoft.com/v1.0/reports/getSkypeForBusinessActivityUserDetail(period='D7')"   `
                            -Method Get                            `
                            -TimeoutSec 60
    $D30Detail=Invoke-RestMethod   -Headers @{Authorization =("Bearer "+ $Auth.access_token)} `
                            -Uri "https://graph.microsoft.com/v1.0/reports/getSkypeForBusinessActivityUserDetail(period='D30')"  `
                            -Method Get `
                            -TimeoutSec 60
    $D90Detail=Invoke-RestMethod   -Headers @{Authorization =("Bearer "+ $Auth.access_token)} `
                            -Uri "https://graph.microsoft.com/v1.0/reports/getSkypeForBusinessActivityUserDetail(period='D90')"  `
                            -Method Get `
                            -TimeoutSec 60
    $D180Detail=Invoke-RestMethod   -Headers @{Authorization =("Bearer "+ $Auth.access_token)} `
                            -Uri "https://graph.microsoft.com/v1.0/reports/getSkypeForBusinessActivityUserDetail(period='D180')" `
                            -Method Get `
                            -TimeoutSec 60

$DataCollection=@($D7Detail,$D30Detail,$D90Detail,$D180Detail)
$FileCollection=@($D7UserDetailOutput,$D30UserDetailOutput,$D90UserDetailOutput,$D180UserDetailOutput)

$SfBUserDetail=""
$SfBUserDetail=Invoke-RestMethod   -Headers @{Authorization =("Bearer "+ $Auth.access_token)}            `
                                    -Method Get                                                           `
                                    -Uri "$($GraphAPIURI)/v1.0/reports/getSkypeForBusinessActivityUserDetail(date=$(Get-date -Date (get-date).AddDays(-1) -Format 'yyyy-MM-dd'))" `
                                    -TimeoutSec 60

$SfBUserDetail | out-file "\\ADFS01\Brainwave Projects\DataWave\_Templates\O365Analytics\Skype for Business Data Storage\UserDetailReports\SkypeForBusinessUserDetail_$(Get-date -Date (get-date).AddDays(-1) -Format 'yyyy-MM-dd').csv" -Force:$true
...