前提・実現したいこと
slackでボットが投稿したメッセージをスイッチが押されたなどの条件でボット自身に変更させたいと考えています。
発生している問題・エラーメッセージ
メッセージが全く変更されません。slackからの応答は以下の通りです。
{"ok":false,"error":"message_not_found"}
該当のソースコード
下記のコードをブラウザで表示させると上記の内容が表示されます。
<?php $url = 'https://slack.com/api/chat.update'; $token = "xoxb-69**********-83**********-Fr**********************"; $channel = "CLW******"; $ts = 1575685623.000100; $headers = [ 'Authorization: Bearer '.$token, 'Content-Type: application/json;charset=utf-8' ]; $data = [ "token" => $token, "channel" => $channel, "ts" => $ts, "text" => "changed" ]; $options = [ CURLOPT_HTTPHEADER => $headers, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode($data), CURLOPT_RETURNTRANSFER => true, CURLOPT_URL => $url ]; $ch = curl_init(); curl_setopt_array($ch, $options); $res = curl_exec($ch); curl_close($ch); echo $res; ?>
試したこと
あらかじめ下記のメッセージをslack上に投稿してあります。下記のjsonは別途channels.historyで取得したものです。
{"type":"message","subtype":"bot_message","text":"sucsess","ts":"1575685623.000100","username":"\u30c6\u30b9\u30c8","bot_id":"BQ*******"}
APIのテスター(https://api.slack.com/methods/chat.update/test)で同様の操作をしたところ,きちんと「sucsess」が「changed」に書き換わります。
GETリクエストで同様の操作をしたところ,きちんと「sucsess」が「changed」に書き換わります。
具体的には
https://slack.com/api/chat.update?token=xoxb-69**********-83**********-Fr**********************&channel=CLW******&ts=1575685623.000100&text=changed
にアクセスすると
{"ok":true,"channel":"CLW******","ts":"1575685623.000100","text":"changed","message":{"type":"message","subtype":"bot_message","text":"changed","username":"\u30c6\u30b9\u30c8","bot_id":"BQ*******"}}
と表示され,やはり「sucsess」が「changed」に書き換わります。
メッセージを投稿する際には特に問題なくjsonデータをPOSTで送れています。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。