Ich versuche ein Bild auf einem Slack-Kanal mit Web-Hooks zu posten. Diese grundlegende Einrichtung hat es mir ermöglicht, Text auf dem Kanal zu posten, aber ich konnte das Bild nicht posten. Hier ist mein Code:Bilder können nicht über Web-Hooks mit Python-Anfragen auf Slack-Kanal hochgeladen werden.
def posting():
import requests
import json
url = 'https://webhook'
image = {'media': open('trial.jpg', 'rb')}
r = requests.post(url, files=image)
r.json
Wenn ich den Text posten, erscheint ein Web-Hook-Bot im Kanal und bucht es. Brauche ich eine weitere Authentifizierung zum Posten? Oder geht es darum, dass Slack eine eigene API zum Hochladen hat und möchte, dass ich das durchspiele? Oder etwas, etwas Bots haben keine Rechte, Bilder zu posten?
Ich habe mir hier ein paar andere Fragen angeschaut, aber sie schienen keine Web-Hooks oder Bots zu benutzen, also bin ich mir nicht sicher, ob mein Problem etwas mit diesen Themen ist.
Ich bin nicht sicher, wie Sie auf dieser Nutzlast entschieden, aber vielleicht lesen https://api.slack.com/incoming-webhooks für die erwarteten Eingänge? (Ich glaube, Sie möchten JSON mit einem 'attachments'-Element senden.) – smarx
Ich habe mir die slack-APIs angeschaut und es scheint, dass sie für Anhänge immer eine URL erwarten. Ich würde es vorziehen, einfach eine Datei aus einem Verzeichnis hochzuladen. Die Anforderungsbibliothek lässt es so erscheinen, als ob dies möglich wäre, aber ich bin nicht genug zum Codieren verwendet, um zu wissen, wann ich meinen Kopf gegen die Wand haue, um meinen ursprünglichen Plan zu verfolgen, anstatt nur mein Setup zu ändern, um mit der Dokumentation zu arbeiten von mir. Ist das eine dieser Zeiten? –
Ich denke schon. Ich bin ziemlich sicher (laut Dokumentation), dass "eingehende Webhooks" keine Option haben, die das Hochladen einer Datei ermöglicht, also müssen Sie die Datei woanders ablegen und über eine URL anhängen. – smarx