I’m upgrading from slackclient
1.3.1
to 2.9.3
using this guide.
before I had this function:
def upload_file(self, file, filename, title, channel): return self.slack_client.api_call( "files.upload", channels=channel, filename=filename, title=title, file=file)
which I tried to migrate to:
def upload_file(self, file, filename, title, channel): return self.web_client.api_call( "files.upload", json={'channels': channel, 'filename': filename, 'title': title, 'file': file})
the function is called with something like this:
with open("/vm-root/app/" + log, 'rb') as f: instance.upload_file(f, log, log, channel)
However, I get:
Object of type ‘BufferedReader’ is not JSON serializable
I am guessing it is related to the way I pass the file
parameter. How should I be doing it?
Advertisement
Answer
Solved, the parameters were wrong:
def upload_file(self, file, filename, title, channel): return self.web_client.api_call( "files.upload", files={'file': file}, data={'channels': channel, 'filename': filename, 'title': title})