[英]Get all users from Yammer with REST API
我找到了这个关于如何使用 REST 获取所有用户的博客,但是我收到一个错误:
PS C:\windows\system32> C:\Temp\YammerUsers.ps1
https://www.yammer.com/api/v1/users.json?page=1
https://www.yammer.com/api/v1/users.json?page=1 System.Collections.ArrayList
The '++' operator works only on numbers. The operand is a 'System.Object[]'.
At C:\Temp\YammerUsers.ps1:34 char:16
+ return Get-YamUsers($page++, $allUsers)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : OperatorRequiresNumber
代码如下:
$baererToken = "TOKEN REMOVED"
$yammerBaseUrl = "https://www.yammer.com/api/v1"
Function Get-BaererToken() {
$headers = @{ Authorization=("Bearer " + $baererToken) }
return $headers
}
Function Get-YamUsers($page, $allUsers) {
if ($page -eq $null) {
$page = 1
}
if ($allUsers -eq $null) {
$allUsers = New-Object System.Collections.ArrayList($null)
}
$urlToCall = "$($yammerBaseUrl)/users.json"
$urlToCall += "?page=" + $page
$headers = Get-BaererToken
Write-Host $urlToCall
$webRequest = Invoke-WebRequest –Uri $urlToCall –Method Get -Headers
$headers
if ($webRequest.StatusCode -eq 200) {
$results = $webRequest.Content | ConvertFrom-Json
if ($results.Length -eq 0) {
return $allUsers
}
$allUsers.AddRange($results)
}
if ($allUsers.Count % 50 -eq 0) {
return Get-YamUsers($page++, $allUsers)
}
else {
return $allUsers
}
}
$users = Get-YamUsers
$users | Select-Object id, email
$page 不是整数,因此不能递增,但我无法找到如何编辑此代码以使其工作。 有什么想法吗?
您可以使用此 API 获取 Yammer Network 中的所有用户。
https://www.yammer.com/api/v1/users.json
尝试在 PowerShell 中进行动态转换以增加 $Page。
代替:
return Get-YamUsers($page++, $allUsers)
和:
return Get-YamUsers(([int]$page)++, $allUsers)
正确的代码在这里
$baererToken = "put your api token here"
$yammerBaseUrl = "https://www.yammer.com/api/v1"
Function Get-BaererToken() {
$headers = @{ Authorization=("Bearer " + $baererToken) }
return $headers
}
Function Get-YamUsers($page, $allUsers) {
if ($page -eq $null) {
$page = 1
}
if ($allUsers -eq $null) {
$allUsers = New-Object System.Collections.ArrayList($null)
}
$urlToCall = $yammerBaseUrl + "/users.json?page=" + $page
Write-Host $urlToCall
$headers = Get-BaererToken
$webRequest = Invoke-WebRequest –Uri $urlToCall –Method Get -Headers $headers
if ($webRequest.StatusCode -eq 200) {
$results = $webRequest.Content | ConvertFrom-Json
if ($results.Length -eq 0) {
return $allUsers
}
$allUsers.AddRange($results)
}
if ($allUsers.Count % 50 -eq 0) {
write-host $page
return Get-YamUsers -page ($page+1) -allUsers $allUsers
}
else {
return $allUsers
}
}
$users = Get-YamUsers
$users | Select-Object id, email, state, jobtitle, location, full_name, first_name, lastname, network_name | Export-Csv -Path C:\exported_users.csv -NoTypeInformation -Encoding UTF8
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.