4

我正在使用 NuGet Yammer API,我试图简单地进行身份验证并将令牌显示为测试。

不幸的是,我似乎无法让它工作。我是新手,但没有关于 NuGet Yammer API 的文档,它将是一个控制台应用程序。Yammer 开发人员页面上的所有示例和文档都显示了从基于 Web 的应用程序执行此操作。

到目前为止我的代码:

static void Main(string[] args)
{
    var myConfig = new ClientConfigurationContainer
    {

        ClientCode = null,
        ClientId = "CODEHERE",
        ClientSecret = "CODEHERE"
    };
    var myYammer = new YammerClient(myConfig);
    var test = myYammer.GetToken();
    Console.WriteLine("Token" + test);
    Console.ReadLine();
}
4

2 回答 2

3

这是一种OAuth 身份验证,您必须与 Yammer OAuth 网页交互才能获取令牌。

您应该在Github上的源代码中查看 asp.net mvc 示例。

在 HomeController.cs 中:

[HttpPost]
public ActionResult Index(IndexViewModel model)
{
    if (ModelState.IsValid)
    {
        var myConfig = new ClientConfigurationContainer
        {
            ClientCode = null,
            ClientId = model.ClientId,
            ClientSecret = model.ClientSecret,
            RedirectUri = Request.Url.AbsoluteUri + Url.Action("AuthCode")
        };

        var myYammer = new YammerClient(myConfig);

        // Obtain the URL of Yammer Authorisation Page
        var url = myYammer.GetLoginLinkUri();

        this.TempData["YammerConfig"] = myConfig;

        // Jump to the url page
        return Redirect(url);
    }
    return View(model);
}

Yammer 将您重定向到此处:

public ActionResult AuthCode(String code)
{
    if (!String.IsNullOrWhiteSpace(code))
    {
        var myConfig = this.TempData["YammerConfig"] as ClientConfigurationContainer;
        myConfig.ClientCode = code;
        var myYammer = new YammerClient(myConfig);
        // var yammerToken = myYammer.GetToken();
        // var l = myYammer.GetUsers();
        // var t= myYammer.GetImpersonateTokens();
        // var i = myYammer.SendInvitation("test@test.fr");
        // var m = myYammer.PostMessage("A test from here", 0, "Event");
        return View(myYammer.GetUserInfo());
    }
    return null;
}
于 2014-08-26T14:18:41.840 回答
2

编写 API 的人还写了一篇关于如何使用它的文章,在这里:

http://fullsaas.blogspot.fr/2013/05/a-simple-net-wrapper-of-yammer-api.html

这也可能有用:

https://blogs.technet.com/b/speschka/archive/2013/10/05/using-the-yammer-api-in-a-net-client-application.aspx

于 2014-02-06T15:28:30.757 回答