`/discourse post` コマンドが「トランスクリプトを読み込んでいます...」でハングします

Discourse の投稿コマンドが 1 つのチャンネルでのみ動作する

これはおそらく私のミスだと思われますが、原因がわかりません。この件に関するスレッドはすべて確認しましたが、お手伝いいただけると嬉しいです。Slack アプリの権限を何度も確認しましたが、1 つのチャンネルでは完全に 100% 動作することを確認しています。

/discourse post 20

アクセストークンの設定が正しく機能していることはわかっています。しかし、Slack チーム内の他のすべてのチャンネルでは、上記のコマンドを実行すると以下のメッセージが表示されるだけです。

トランスクリプトを読み込み中...

それ以上何も表示されません。これらはすべて公開チャンネルですが、設定のあらゆる組み合わせを試しました。動作する 1 つのチャンネルは今日新しく作成されたものですが、テスト用に別の新しいチャンネルを作成しても動作しませんでした。トラブルシューティングの着手方法さえわかりません。Discourse 上で私が知っているログは以下のものだけです。

./launcher logs app

しかし、そこには何も表示されていないようです。どの設定を見落としているために投稿が 1 つのチャンネルでのみ動作するようになっているのか、また、この問題をデバッグするためにどこを確認すべきでしょうか?

このトピックは以下のスレッドから分割されました。

「いいね!」 1

Discourse から投稿しようとしているチャンネルに対して、Discourse からの投稿が可能かどうかを確認してください。おそらく、そのチャンネルに作成したアプリを追加してからでないと、そのチャンネルへの投稿やそこからからの投稿はできないはずです。

「いいね!」 2

@simon そうです、それだったかもしれません!正直に言うと、Slack アプリの仕組みが少しわかりません。どの Slack チャンネルでも /discourse ... コマンドを実行でき、「App」がグローバルレベルでインストールされているように見えたので、必要なすべての方法でアプリを「追加」したつもりでした。しかし、明示的に /invite で Discourse アプリのユーザーを別のチャンネルに招待すると、動作し始めます!

/invite @Discourse 
/discourse post 20

非常に面倒なことに、招待しても Slack は @discourse ユーザーがチャンネルにいることを表示しません。Slack UI 上のユーザー数は変化せず、チャンネルの全メンバーを表示してもアプリユーザーはリストされていません。これはおそらく Slack 自体の欠陥で、Discourse の問題ではないのでしょう。

チーム内のすべての Slack チャンネルに Discourse ユーザーを招待する必要がなくなると嬉しいのですが(私たちが持っているチャンネルは膨大なので)、これはアプリに対する Slack の制限だと思われますか?また、Discourse チャットプラグインにこの問題を検知し、より有用なエラーメッセージを表示する機能を追加することは可能でしょうか?

「いいね!」 3

初めてこの設定を試した際、Discourse アプリをすべてのチャンネルに追加する必要があったことに驚きました。この要件を回避する方法がないか引き続き探します。

おそらく、アプリがチャンネルへの投稿や受信の権限を持っていないためにアクションが失敗した場合、Slack から Discourse へエラーメッセージが返されているのでしょう。もしそうであれば、そのエラーを利用して、Discourse 上のチャンネルエントリーに注意を表示することは、この種のトラブルシューティングに役立つはずです。これが可能かどうかはわかりませんが、Slack がこのケースについて Discourse にどのような有用な情報を返すか確認してみます。

「いいね!」 3

これは正しいようです。私は Slack でのみテストしました。Discourse がアプリが追加されていない Slack チャンネルに投稿しようとすると、チャット統合ページに警告が表示され、問題のあるチャンネルの上にエラーメッセージが表示されます。

アプリが追加されていないチャンネルのエラーアイコンをクリックすると、問題が明らかになります。

{
  "error_key": null,
  "request": "",
  "response_code": "200",
  "response_body": "{\"ok\":false,\"error\":\"not_in_channel\"}"
}

おそらく、Discourse はそのエラーメッセージを解析して、ユーザーに問題を解決するために必要な手順の詳細を提供できるかもしれません。

アプリが追加されていないチャンネルからスラッシュコマンドを使用して Discourse に投稿しようとすると、slack_command_controller.rb:86 から Discourse に対して Job exception: break from proc-closure エラーがスローされます。このケースに対して意味のあるエラーメッセージを作成するために、Slack から十分な情報が返されているかどうかはわかりません。

「いいね!」 2

また、そのエラーに対して、channels.join 権限を要求することでチャンネルへの参加を試みる応答を行うこともできます。

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.