从Azure Webjob连接到Yammer

时间:2015-06-15 16:03:02

标签: c# yammer azure-webjobs

我正在尝试使用他们的.NET SDK连接到Yammer,但我有一段时间来管理这个...这个练习的目的是在Azure中创建一个应用程序,定期 - 并且自主地 - 联系Yammer和从特定的Yammer组中获取最新消息。

有没有人知道使用Yammer .NET SDK的正确方法,比方说,一个控制台应用程序,它不依赖于浏览器(也称为直接用户交互)通过OAuth身份验证成功连接?

我尝试了什么

试图通过.NET SDK page on developer.yammer.com上给出的示例来做什么,你可以看到"标准流程"显示带有错误签名的LaunchSignIn()函数的示例!该示例显示用法为:

var authResponse = await OAuthUtils.LaunchSignIn(_clientConfig.ClientId, _clientConfig.RedirectUri, ssoEnabled);

而我从dll获得的实际签名是:

void OAuthUtils.LaunchSignIn(string clientId, string RedirectUri)

我会原谅丢失的ssoEnabled参数...但该示例声明该函数会收到一个响应,然后从中提取Code。当然,这是我试图打电话时丢失的部分:

(awaitable) Task<AuthEnvelope> AuthClient.AuthenticateAppAsync(string code)

我已经向谷歌搜索了有关使用Yammer .NET SDK的信息,但却空手而归。连接到Yammer的所有示例都没有任何与.NET API相关的示例。我所看到的唯一相关的事情是Yammer .NET API example uploaded,显然是由who posted the code on GitHub开发的人So does this other example。我已经检查了这个例子,但其中有两个部分 - 一个用于Windows Phone,另一个用于Windows&#34; Modern App&#34; - 两者都依赖于可用的浏览器对象,或者无论如何都依赖于那种效果。有重定向,我应该有一个RedirectUri让Yammer指导我...... {{3}} - 这是使用我能找到的.NET SDK的唯一其他例子。

我认为签名不同的原因是因为它实际上根本不是同一个功能。我试图使用的是Yammer.Oss.Api.Utils,而示例应用程序甚至没有字母Utils,而不是类OAuthUtils的名称...让我相信它可能在Yammer.Oss.Core.WinRT之下,幸运的是,我根本无法引用...... Yammer.Oss.Core只包含CollectionsConstants,{ {1}}和Extensions

顺便说一句,在.NET SDK的发布中(参见上面的第一个链接),SDK的文档链接将导致Yammer支持页面。

1 个答案:

答案 0 :(得分:1)

跳过.NET SDK,然后使用server-side flow自行执行授权。然后使用HttpClientadd the Authorization header发出请求。 SDK可能对某些现代应用程序有所帮​​助,但对大多数人来说这样做太过分了。手动使用API​​时,您必须处理的最糟糕的事情是使用JSON.NET或其他JSON库反序列化JSON响应。

您没有说明您要构建的内容,但AFAIK WebJobs没有UI,因此您需要从控制台应用或网站进行授权。然后将生成的OAuth令牌存储在WebJob可以访问它的位置。如果您需要为每个用户提供OAuth令牌,则需要将这些令牌存储在数据库中,但要努力保护它们,因为每个OAuth令牌都可以访问其Yammer帐户。

相关问题