如何在Heroku上进行Hipchat集成以进行身份​​验证?

时间:2017-02-23 03:34:37

标签: heroku oauth hipchat

我按照分步指南here进行了操作。

我创建了一个简单的应用程序,根据正则表达式将消息发布到安装Integration的房间(如上面的教程中所述)。

当我最初将整合添加到hipchat房间时,它工作正常。但是,经过一段时间后它就会停止工作。

我的Heroku日志中出现以下错误:

JWT verification error: 400 Request can't be verified without an OAuth secret

我认为我的配置错误或我的OAuth使用不足,但在谷歌搜索后我无法找到 应该是什么样的具体答案

我的config.json看起来像这样:

    "production": {
    "usePublicKey": true,
    "port": "$PORT",
    "store": {
        "adapter": "jugglingdb",
        "type": "sqlite3",
        "database": "store.db"
    },
    "whitelist": [
        "*.hipchat.com"
    ]
},

我的请求处理程序如下所示:

app.post('/foo',
    addon.authenticate(),
    function (req, res) {
      hipchat.sendMessage(req.clientInfo, req.identity.roomId, 'bar')
        .then(function (data) {
          res.sendStatus(200);
        });
    }
);

关于配置和使用Oauth for Hipchat和Heroku的任何具体方向都会很棒!

2 个答案:

答案 0 :(得分:0)

我个人没有使用带Heroku的jugglingdb适配器,并且不知道你是否可以真正查看数据库,但它似乎在clientInfo从商店消失的某个地方。

我的建议是开始使用ngrok和redis进行本地测试,以便您可以在本地进行故障排除,然后将工作代码推送到Heroku。

答案 1 :(得分:0)

我需要做的三件事来解决我的问题:

  1. 为我的Heroku App安装Heroku Redis add-on。 (确认($ REDIS_URL)的环境变量已添加到您的应用设置中。)
  2. 将此行添加到我的app.js文件中:

    ac.store.register('redis',require('atlassian-connect-express-redis'));

  3. 将config.json中的production.store对象更改为以下内容:

    “store”:{         “适配器”:“redis”,         “url”:“$ REDIS_URL”     },