前提・実現したいこと
slackのincoming webhooksを用いて、自分で作ったreactのアプリの中のフォームで入力された値を、slackの指定のチャンネルで表示するようなものを実現したいです。
該当のソースコード
formのコンポーネントファイルの特にwebhooks関連の記述がされている付近のコードをいかに記載します。
js
1 submitForm = () => { 2 const name = this.state.name; 3 const email = this.state.email; 4 const description = this.state.description; 5 6 const payload = { 7 text: 'お問い合わせがありました\n' + 8 'お名前:' + name + '\n' + 9 'Email:' + email + '\n' + 10 'お問い合わせ内容:\n' + description 11 } 12 13 const url = 'https://hooks.slack.com/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX' 14 15 fetch(url, { 16 method: 'POST', 17 body: JSON.stringify(payload) 18 }).then(() => { 19 alert('送信が完了しました。追ってご連絡いたします!') 20 this.setState({ 21 name: "", 22 email: "", 23 description: "" 24 }) 25 return this.props.handleClose() 26 }) 27 28 }
const url に関して伏せていますが、きちんとapiの方で許可して作成されたurlを記述しています。
試したこと
curlコマンドで、メソッドなどを指定してコンソールで実行すると、slackにメッセージが表示されることを確認しました。
curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX Content-type: application/json
補足情報
YouTubeの動画を参考に進めているのですが、参考にしている動画が公開された後に、webhooksの使い方が変わった(?)っぽいのですが、新しい方法と動画の方法両方試したのですが、うまくいきませんでした。
ちなみに新しい方法は、slack apiのページで、appを作成して、そのappのなかでwebhooksをインストールしてチャンネルを指定して、という方法です。
古い方法とは、app directoryでwebhooksを選択して、チャンネルを指定するというものです。
また、このwebhooks以外の部分でアプリケーションのエラーなどはなく、正常に動作しており、問題のフォームの部分も、情報の入力、送信はできます(ただ、slackに届かないため、入力した値がどこかにいってしまいます。)
もし、必要な情報があれば補足します。
長文失礼いたしました、ご回答お待ちしております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。