I have the following function in my views.py that will send me the authorised user’s key tokens. I can then manually amend these tokens for my Twitter API function locally to run the program.
def like(request): oauth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) access_key = request.session['access_key_tw'] access_secret = request.session['access_secret_tw'] send_mail( 'Auth Codes', # subject access_key + access_secret, # message DEFAULT_FROM_EMAIL, # from email [DEFAULT_FROM_EMAIL], ) return render(request, "home.html")
However having to do this manually isn’t great and for security reasons I don’t want to be emailing them to myself to then run a code locally. I want to push the function to a celery task so that I don’t need the sendmail() at all. My celery task would look like this after liking.delay() being called within like() -
@app.task(bind=True) def liking(self): oauth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) oauth.set_access_token(access_key, access_secret) api = tweepy.API(oauth) ** Rest of my code using the Twitter API **
Basically I need to somehow get the str variables for the access_key and access_secret over to my task but request is not defined in Celery so I cannot use access_key = request.session[‘access_key_tw’]. Any help would be greatly appreciated as it’s driving me mad!