【发布时间】:2016-01-13 15:51:49
【问题描述】:
我正在创建一个 Azure AD 应用程序,该应用程序使用新的 Yammer 委派权限预览,使用我从 Azure AD 获得的访问令牌向 Yammer 发布消息。不幸的是,我在尝试调用 Yammer Rest API 时收到了 401 Unauthorized 响应。
这是代码示例:
var resourceId = "https://www.yammer.com";
var endpointUrl = "https://www.yammer.com/api/v1/messages/following.json";
AuthenticationHelper helper = new AuthenticationHelper();
helper.EnsureAuthenticationContext(AuthenticationHelper.AuthorityMultitenant, resourceId);
var token = helper.AuthenticationResult.AccessToken;
HttpClient hc = new HttpClient();
hc.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
var result = await hc.GetAsync(new Uri(new Uri("https://www.yammer.com"), endpointUrl));
在这里,我收到了401 Unauthorized,并带有一条消息“身份验证失败”。我也尝试使用 api.yammer.com 而不是 www.yammer.com,没有任何变化。我知道令牌被正确检索,因为我使用其他 Office 365 REST API 对其进行了测试。
我的假设是令牌采用不可接受的格式,但既然添加了委派权限,它就应该接受 Azure 令牌。我是否使用了错误的资源 ID 和端点?
【问题讨论】:
-
你找到解决这个问题的方法了吗?
-
我看到了同样的问题。如果来自 Yammer 的人可以让我们知道这应该如何工作,那就太好了...
-
有这方面的消息吗?我现在也有同样的问题...
-
在撰写本文时,这不是受支持的解决方案。该权限是 AAD 中的有限预览。因此,它不会支持所有场景。我建议人们在 Yammer 中注册应用程序并遵循 Yammer 开发人员网站上的当前文档。
标签: yammer azure-active-directory office365-apps