如何将松弛用户与github帐户关联?

时间:2019-02-16 16:41:44

标签: oauth-2.0 github-api slack slack-api

我正在创建一个Slack机器人,希望能够将Slack用户与github帐户相关联。

有没有一种方法可以通过slack或github API链接两个?

我正在考虑是否在JSON对象(即:

)中存储用户的松弛用户名和github用户名。
{
    "slack_username": "JoeBlogs",
    "github_username": "JoeBlogs123"
}

为此,我需要在用户授权应用程序/机器人时从slack API中检索用户的用户名。

我在想,如果我将一个redirect_url添加到我的Slack应用中,那么如果将用户数据发送到此重定向网址,它将把用户重定向到http://example.com/redirect,我可以将其保存在各种数据库。

如果我随后对github API进行了同样的操作,那么我可以引用数据库以找到松弛的用户JoeBlogs github帐户,反之亦然。

是否可以像这样使用redirect_url?我看不到任何要发送到的用户数据,但也许它嵌套在我看不到的地方?

是否有更好的方式关联两个帐户?

1 个答案:

答案 0 :(得分:0)

假设您正在使用“安装”按钮将Slack应用程序安装到工作区中,那么这是一个有效载荷,它将被发送到您的response_url

{
    "access_token": "xoxp-XXXXXXXX-XXXXXXXX-XXXXX",
    "scope": "incoming-webhook,commands,bot",
    "team_name": "Team Installing Your Hook",
    "team_id": "XXXXXXXXXX",
    "incoming_webhook": {
        "url": "https://hooks.slack.com/TXXXXX/BXXXXX/XXXXXXXXXX",
        "channel": "#channel-it-will-post-to",
        "configuration_url": "https://teamname.slack.com/services/BXXXXX"
    },
    "bot":{
        "bot_user_id":"UTTTTTTTTTTR",
        "bot_access_token":"xoxb-XXXXXXXXXXXX-TTTTTTTTTTTTTT"
    }
}

See for details.

然后,将access_tokenusers.identity API方法结合使用,您将获得有关Slack用户的基本信息(使用在安装过程中请求的范围,您可以获得不同的Slack用户身份字段)