tokenの送信メソッドはPOSTのみに
トークン(xox...)はPOSTじゃなきゃダメになったらしい。
Three major deprecations you may be impacted by beginning February 24, 2021
// これじゃダメ(仕変前に作ったものであればOK)
$url = "https://slack.com/api/chat.postMessage?token=${token}&channel=${channel}&text=${text}";
file_get_contents($url);
// OK
$url = "https://slack.com/api/chat.postMessage?channel=${channel}&text=${text}";
$body = 'token='.$token;
$ch = curl_init();
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_URL,$url);
$result = curl_exec($ch);
curl_close($ch);
今回新規でSlack Botの開発案件があったんですが、前作ったBotのソースコピペでトークンだけ変えればいけるだろうと思ってたところ、この仕変に気付かず小1時間ハマりました…そもそもクレデンシャルをGet送信するなというのとちゃんとドキュメント読めという話ではありますが;
公式のテストツールもGetで投げてるのでtoken指定だとエラーになります。
https://api.slack.com/methods/chat.postMessage/test