【发布时间】:2018-07-20 01:17:58
【问题描述】:
我有一个 Slack 应用程序,直到昨天只有主要所有者才能发送消息。我向 Slack 团队询问了如何解决这个问题,让所有用户都能够在 Slack 上发送消息。答案是首先使用 Sign in with Slack 按钮让他们登录。然后使用另一个按钮,但范围不同。
我的问题是,我可以使用如下按钮以用户身份发送消息:
<input type="button" value="Authenticate again to send Message" class="btn btn-warning" onclick="location.href = 'https://slack.com/oauth/authorize?scope=incoming-webhook,im:write,chat:write:user&client_id=xxyyzz'"/>
现在,我正在尝试通过显示“请稍候”的视图在后台执行相同的额外范围请求
附上以下代码:
<script>
$.ajax({
method: "GET",
dataType: "json",
url: "@Url.Action(MenuItem, "SetupSlack")",
//data: { code: 'Model.Code' },
data: { code: '@Model' },
success: function(rsp) {
window.location.replace(rsp.redirect);
},
error: function() {
// Show error.
}
});
</script>
而控制器代码如下:
public ActionResult SetupSlack(string code)
{
SlackAuthToken slackToken = slackService.GetAccessToken( clientId, clientSecret, code);
string redirectUrl;
if (slackToken.IsAuthenticated && slackToken.HasWrite)
{
Alert("Slack setup successfully!!!!", AlertLevel.Success);
redirectUrl = Url.Action(MenuItem, "Index");
}
else if (slackToken.IsAuthenticated)
{
redirectUrl = "https://slack.com/oauth/authorize?scope=incoming-webhook,im:write,chat:write:user&client_id=aabbcc";
}
else
{
Alert("Slack setup failed. Please try again, if the problem persists please contact support.", AlertLevel.Success);
redirectUrl = Url.Action(MenuItem, "Index");
}
return JsonNet(new { redirect = redirectUrl });
}
它不会导致发布消息身份验证页面。此外,另一个错误是“代码已被使用”作为 OAuth 流中的响应之一。
谁能帮帮我。 我使按钮工作正常,但这也应该工作。
【问题讨论】:
-
这似乎是您就同一主题提出的第三个问题。以下是其他的,目前仍然开放:stackoverflow.com/questions/51365982/…stackoverflow.com/questions/51332569/…
-
如果您没有得到好的答案,或者您想添加新信息,我强烈建议您坚持一个问题并更新原始问题。我们的目标是解决关于 SO 的所有问题 - 为了您的利益,也为了其他可能有类似问题的人。
-
哦,我很抱歉。我不知道。我认为这是一个不同的问题,因为我现在正在做不同的事情。以后我会牢记这一点。
-
看起来这个用户是被 StackOverflow 踢出的......
标签: slack-api