So I have been trying, (without luck) to base64 encode a image to upload to twitter with the Twython library. Iv'e done it the way I know how but it don't seem to work.
from twython import Twython
import base64
#keys
APP_KEY = '*************'
APP_SECRET = '**************'
OAUTH_TOKEN = '**********************'
OAUTH_TOKEN_SECRET = '*************************'
#start twitter instance
twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
#encode image to bas64
with open("image.jpeg", "rb") as imageF:
st = base64.b64encode(imageF.read())
#print to make sure its being encoded
print st
#update twitter banner
twitter.update_profile_background_image(image=st)
The twitter docs don't help to much. https://dev.twitter.com/rest/reference/post/account/update_profile_banner Nor does the Twython Docs. https://twython.readthedocs.org/en/latest/api.html Let me know how you would do it. Or if you have a better way.
Thanks
Ok, so I thought I would come back and say what I found out. The way I was doing it works. I apparently had made the same call with invalid parameters before and twitter much count all API calls as a call. And they seem to not let you make a banner update call very often. Also I think they expect the image to be the right size, which seems to be(1500px,500px) So you should try to resize the image before you encode it. If someone knows of a simpler way...i'm still open for suggestions.
Thanks for now!