【发布时间】:2014-05-01 06:00:05
【问题描述】:
我正在开发一个从 Yammer 读取数据的 ASP.NET Web 应用程序。我已成功完成身份验证并从“家庭”网络获取消息。
现在我想切换到另一个网络并从中获取消息。我已经阅读了所有的 documentation,特别是 Networks 部分,其中陈述了以下内容:
便于在不同 Yammer 网络之间切换用户。全部 Yammer Web 请求在 URL 中包含网络永久链接 (https://www.yammer.com/network_permalink/resource_path) 来表示 网络上下文。 API 请求对每个请求使用不同的 OAuth 令牌 用户/网络组合。
Endpoint:返回当前用户拥有的网络列表 使用权。支持included_suspended参数。
GET https://www.yammer.com/api/v1/networks/current.json
好的,所以我需要为用户/网络组合获取相应的令牌。完美的。
我向networks/current.json 端点发出GET 请求,我得到了当前用户可以访问的所有网络。伟大的。现在,令牌在哪里?它们不在 json 响应中。
所以……
- 如何使用 Yammer REST 从外部网络获取消息 API 通过服务器端代码?
- 如何获取外部令牌 网络?
更新
听从布赖恩的建议:
- 我执行
GET https://www.yammer.com/api/v1/oauth/tokens.json在身份验证标头中传递当前令牌 (Bearer: xxxxxxxxx) - 这将返回我正在使用的用户所在的 2 个网络。家庭网络和外部网络。我注意到的一件事是
user_id对于每个网络都不同。我不知道这是否是其他用户,或者同一用户是否为每个网络使用不同的user_id。 - 现在我想从其他网络获取消息,所以我做了一个
GET https://www.yammer.com/api/v1/messages.json
但现在使用我从tokens.json 端点获得的外部网络令牌。但我得到以下回复:
{
"response":
{
"stat":"fail",
"code":17,
"message":"Attempt to access a protected resource failed."
}
}
再一次,根据文档,端点用于模拟并且仅限于付费 Yammer 网络中经过验证的管理员用户。
我真的不知道。
更新 2
上述更新中描述的过程适用于创建 Yammer 应用程序的用户(我)。我正在使用。除非我在该网络中,否则其他用户无法从外部网络获取消息。所以看起来他们正在使用我的令牌,但除非 API 中存在错误,否则这是不可能的。
【问题讨论】:
标签: api rest oauth-2.0 access-token yammer