rest - 获取 Yammer 消息
问题描述
我正在尝试为使用 powershell 调用 REST 的 AD 组的一部分用户从 yammer 获取所有消息。但我的代码在“ $webRequest = Invoke-WebRequest –Uri $urlToCall –Method Get -Headers ”行中断。我收到“未经授权”和“无法连接”错误。下面是我从http://www.nubo.eu/en/blog/2016/12/Get-All-Yammer-Messages-Through-Rest-API-With-PowerShell/使用的代码。请帮忙。
baererToken = "Put your baerer token here"
$yammerBaseUrl = "https://www.yammer.com/api/v1"
Function Get-BaererToken() {
$headers = @{ Authorization=("Bearer " + $baererToken) }
return $headers
}
Function Get-YamMessages($limit, $allMessages, $lastMessageId) {
$yammerBatchSize = 20;
if ($limit -eq $null) {
$threadLimit = $yammerBatchSize
}
else {
$threadLimit = $limit
}
if ($allMessages -eq $null) {
$allMessages = New-Object System.Collections.ArrayList($null)
}
$currentMessageCount = $allMessages.Count;
if ($currentMessageCount -ge $threadLimit) {
return $allMessages
} elseif ($currentMessageCount + $yammerBatchSize -gt $threadLimit) {
$threadLimit = $threadLimit % $yammerBatchSize;
} else {
$threadLimit = $yammerBatchSize
}
$urlToCall = "$($yammerBaseUrl)/messages.json"
$urlToCall += "?limit=" + $threadLimit;
if ($lastMessageId -ne $null) {
$urlToCall += "&older_than=" + $lastMessageId;
}
$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.messages.Length -eq 0) {
return $allMessages
}
$allMessages.AddRange($results.messages)
}
if ($allMessages.Count -lt $limit) {
$lastMessageId = $allMessages[$allMessages.Count -1].id;
return Get-YamMessages $limit $allMessages $lastMessageId
}
else {
return $allMessages
}
}
$messageResults = Get-YamMessages 100
解决方案
推荐阅读
- sqlite - 我正在尝试提取值并将它们放在 .db 中以供以后使用,但是我的代码有问题,我什至无法再加载 SQLite
- excel - Excel - 公式的条件格式不起作用但公式本身有效
- c# - 如何在 Unity 中创建 X 秒内的 180 度相机轨道?
- actionscript-3 - 在 Actionscript 3.0 中设置边界
- c# - 奇怪的json反序列化异常
- git - 部署代码后如何在生产环境中删除整个 git trail
- sql - 如何正确地从嵌套表中获取唯一行?
- c - 如何将数据存储在 char 数组中并在 C 中转换为 int
- java - Java 静态谓词命名约定
- ml.net - 加载预训练模型(例如从 onnx 文件)时,fit 方法会做什么