【问题标题】:how to integrate slack into website如何将松弛集成到网站中
【发布时间】:2018-07-09 01:22:34
【问题描述】:

我正在尝试将 slack 集成到我的网站中,但遇到了一些麻烦。重点是在网站上,有人可以点击“使用 Slack 登录”,然后能够选择一个工作空间,登录,然后在该工作空间中选择一个频道来安装网站提供的应用程序。

我现在有登录部分:

[Route("Account")]
public class AccountController : Controller
{
    [Route("Login")]
    [HttpGet]
    public IActionResult Login(string returnUrl = "/")
    {

        return Challenge(new AuthenticationProperties() { RedirectUri = returnUrl });
    }
}

options.Events = new OAuthEvents
{
    OnCreatingTicket = async context =>
    {
        var request = new HttpRequestMessage(HttpMethod.Get, context.Options.UserInformationEndpoint);
        request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", context.AccessToken);

        var response = await context.Backchannel.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, context.HttpContext.RequestAborted);
        response.EnsureSuccessStatusCode();

        var userInfo = JObject.Parse(await response.Content.ReadAsStringAsync());
        // var channelInfo = JObject.Parse(await response.Content.ReadAsStringAsync());
        // Will read the hannel info and find the webhook url and stuff
        context.RunClaimActions(userInfo);
    }
};

但现在我正在阅读的 JSON 只获取用户信息。如何创建一些内容,以便它也会提示要求选择频道?

【问题讨论】:

标签: c# asp.net slack-api


【解决方案1】:

选择频道不是安装 Slack 应用程序的标准过程的一部分。

因此,我建议将其添加到您的网站上,作为用户安装流程的一部分。由于您需要一个有效的访问令牌来获取频道列表,因此最好在安装 Slack 应用程序之后进行此交互。

然后调用 Slack API 方法channels.list 获取所有公共频道的列表,然后向用户提供选择一个的选项,例如带有一个下拉框。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    相关资源
    最近更新 更多