2015-06-15 104 views
3

我正嘗試使用他們的.NET SDK連接到Yammer,但我有一段時間管理這個......這個練習的要點是在Azure中定期創建一個應用程序 - 和自動 - 聯繫Yammer並從特定的Yammer小組獲取最新消息。從Azure Webjob連接到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。我已經檢查了這個例子,但其中的兩個部分 - 一個用於Windows Phone,另一個用於Windows「現代應用程序」 - 兩者都依賴於可用的瀏覽器對象,或者無論如何都有這種效果。有重定向,我應該有一個RedirectUri爲Yammer指導我... So does this other example - 這是使用.NET SDK的唯一的其他例子,我可以找到。

我想象簽名不同的原因是因爲這實際上並不是相同的功能。我試圖使用的那個是Yammer.Oss.Api.Utils,而示例應用程序甚至沒有將字母Utils合併在一起,除非是類OAuthUtils的名稱......這導致我相信它可能在Yammer.Oss.Core.WinRT之下,其中運氣不錯會有它,我根本無法參考...... Yammer.Oss.Core只包含CollectionsConstants,ExtensionsSerialization

順便說一句,在.NET SDK的公告(請參閱上面的第一個鏈接)中,SDK的文檔鏈接導向Yammer支持頁面。

回答

1

跳過.NET SDK,只需使用server-side flow自己執行授權。然後用HttpClientadd the Authorization header發出請求。 SDK可能會對一些現代應用程序有所幫​​助,但對於大多數人來說它是過度的。在手動使用API​​時,您必須處理的最糟糕的事情是使用JSON.NET或其他JSON庫反序列化JSON響應。

你不會說你正在嘗試構建什麼,但AFAIK WebJobs沒有UI,所以你需要從控制檯應用程序或網站進行授權。然後將生成的OAuth令牌存儲在WebJob可以訪問的地方。如果您需要每個用戶的OAuth令牌,則需要將這些令牌存儲在數據庫中,但需要努力保護它們,因爲每個OAuth令牌都可以訪問其Yammer帳戶。

+0

我將此標記爲答案,因爲它令人滿意地回答了有關.NET SDK的問題,儘管它尚未幫助我在實際連接到Yammer方面取得很大進展。所有通過初始調用Yammer在身份驗證過程中返回一個404 ... –

+0

似乎我得到一個404,因爲我沒有提供Yammer所需的cookie與請求,如下所示 - http:// stackoverflow .COM /問題/ 25389113/Yammer的認證與 - HttpWebRequest的。似乎現在正在運行。將在Azure WebJob上進行檢查 –