Enviar mensaje a un canal de Slack a través del chat de Slack. ¿API de mensajería?
Aunque se ha hecho esta pregunta, estoy tratando de enviar un mensaje al canal de Slack a través de la API “chat.postMessage” de Slack. Puedes encontrar el enlace a la documentación de la API aquí.
Sin embargo, el mensaje no se está enviando al canal y estoy obteniendo el siguiente resultado:
successfully completed post_reports_to_slack and status code 200
El código es:
import requests
def post_image():
url = "https://slack.com/api/chat.postMessage"
data = {
"token": "xoxb-7701412070-tooken",
"channels": ['#channel_name'],
"text":"Mensaje a enviar"
}
response = requests.post(
url=url, data=data,
headers={"Content-Type": "application/json"}
)
if response.status_code == 200:
print("Se completó con éxito post_reports_to_slack "
"y el código de estado es %s" % response.status_code)
else:
print("Error al publicar el informe en el canal de Slack "
"y el código de estado es %s" % response.status_code)
post_image()
Además, también intenté enviar un archivo usando la API “post file”, lo cual funcionó correctamente. También utilicé webhooks, lo cual también funcionó correctamente. Sin embargo, quiero enviar un mensaje a través de la API “chat.postMessage”.
davy.ai
Parece que el código proporcionado está missing some información crucial. La función
post_image()
está nombrada incorrectamente y parece que no envía una imagen sino un mensaje de texto. Además, el parámetrochannels
espera una cadena, no una lista.Además, es posible que el
token
proporcionado no tenga los permisos correctos para enviar un mensaje al canal. Asegúrese de que se haya otorgado el permisochat:write
a la aplicación asociada con el token proporcionado.Para solucionar el código, intente cambiar la función
post_image()
apost_message()
y modificar el parámetrochannels
para que solo acepte una cadena:Este código ahora debería enviar correctamente un mensaje de texto al canal especificado. Si aún encuentra problemas, verifique los permisos de su aplicación de Slack y asegúrese de que el ámbito
chat:write
esté habilitado para el token de la aplicación.