为什么我的 slack bot 的应用主页没有加载?
Why isn't my slack bot's app home page loading?
我已经使用 Bolt 创建了一个 slack 机器人,并且正在尝试为其创建一个主页。我已经订阅了 app_home_opened
事件并正在发布视图并获得成功响应,但是主页只是松弛地旋转了几秒钟,然后说“这仍在进行中”。我有另一个运行良好的 slack 应用程序,但我无法弄清楚这两个应用程序之间的区别。
这是我的代码:
(async () => {
// Start your app
await app.start(process.env.PORT || 3020);
app.event('app_home_opened', async ({ event, context }) => {
const yourView = {
"type": "home",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "This is a mrkdwn section block :ghost: *this is bold*, and ~this is crossed out~, and <https://google.com|this is a link>"
}
}
]
};
const result = await app.client.views.publish({
token: context.botToken,
user_id: event.user,
view: yourView
});
console.log(result);
});
console.log('⚡️ Bolt app is running!');
})();
这是我的应用日志:
[DEBUG] ack() begin
[DEBUG] ack() response sent
[DEBUG] web-api:WebClient:0 apiCall('views.publish') start
[DEBUG] web-api:WebClient:0 will perform http request
[DEBUG] web-api:WebClient:0 http response received
{
ok: true,
view: {
id: '***',
team_id: '***',
app_id: '***',
app_installed_team_id: '***',
bot_id: '***',
type: 'home',
blocks: [ [Object] ],
state: { values: {} },
hash: '1631738063.S4t8Cj2H',
private_metadata: '',
callback_id: '',
root_view_id: '***',
external_id: '',
title: { type: 'plain_text', text: 'View Title', emoji: true },
close: null,
submit: null,
previous_view_id: null,
clear_on_close: false,
notify_on_close: false
},
response_metadata: {
scopes: [
'reactions:read',
'chat:write',
'channels:history',
'commands',
'groups:history',
'users:read',
'channels:read',
'groups:read',
'im:read',
'mpim:read',
'users:read.email'
]
}
}
日志消息在我看来是成功的。例如,如果我将块更改为无效语法,我会看到一个真正的错误。我不明白为什么我会得到成功的响应,但我的应用主页不会加载。我已经尝试将所有作用域添加到它在 response_metadata
中列出的我的机器人中,但这没有任何作用。
还有其他可能出错的想法吗?
正如@sandra 所说,这实际上是由于使用了错误的标记。我正在使用来自不同应用程序的令牌。一切正常,我猜它只是发布到错误的地方。
我已经使用 Bolt 创建了一个 slack 机器人,并且正在尝试为其创建一个主页。我已经订阅了 app_home_opened
事件并正在发布视图并获得成功响应,但是主页只是松弛地旋转了几秒钟,然后说“这仍在进行中”。我有另一个运行良好的 slack 应用程序,但我无法弄清楚这两个应用程序之间的区别。
这是我的代码:
(async () => {
// Start your app
await app.start(process.env.PORT || 3020);
app.event('app_home_opened', async ({ event, context }) => {
const yourView = {
"type": "home",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "This is a mrkdwn section block :ghost: *this is bold*, and ~this is crossed out~, and <https://google.com|this is a link>"
}
}
]
};
const result = await app.client.views.publish({
token: context.botToken,
user_id: event.user,
view: yourView
});
console.log(result);
});
console.log('⚡️ Bolt app is running!');
})();
这是我的应用日志:
[DEBUG] ack() begin
[DEBUG] ack() response sent
[DEBUG] web-api:WebClient:0 apiCall('views.publish') start
[DEBUG] web-api:WebClient:0 will perform http request
[DEBUG] web-api:WebClient:0 http response received
{
ok: true,
view: {
id: '***',
team_id: '***',
app_id: '***',
app_installed_team_id: '***',
bot_id: '***',
type: 'home',
blocks: [ [Object] ],
state: { values: {} },
hash: '1631738063.S4t8Cj2H',
private_metadata: '',
callback_id: '',
root_view_id: '***',
external_id: '',
title: { type: 'plain_text', text: 'View Title', emoji: true },
close: null,
submit: null,
previous_view_id: null,
clear_on_close: false,
notify_on_close: false
},
response_metadata: {
scopes: [
'reactions:read',
'chat:write',
'channels:history',
'commands',
'groups:history',
'users:read',
'channels:read',
'groups:read',
'im:read',
'mpim:read',
'users:read.email'
]
}
}
日志消息在我看来是成功的。例如,如果我将块更改为无效语法,我会看到一个真正的错误。我不明白为什么我会得到成功的响应,但我的应用主页不会加载。我已经尝试将所有作用域添加到它在 response_metadata
中列出的我的机器人中,但这没有任何作用。
还有其他可能出错的想法吗?
正如@sandra 所说,这实际上是由于使用了错误的标记。我正在使用来自不同应用程序的令牌。一切正常,我猜它只是发布到错误的地方。