在c#console应用程序中对Yammer进行身份验证

时间:2014-02-05 12:01:44

标签: c# yammer

我正在使用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();
}

2 个答案:

答案 0 :(得分:3)

这是OAuth authentication,您必须与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;
}

答案 1 :(得分:2)