예제 #1
0
def cmd_verify(bot, update, args, chat):
    if restrict_access(bot, update):
        return
    if not chat.twitter_request_token:
        bot.reply(update, "Use /auth command first")
        return
    if len(args) < 1:
        bot.reply(update, "No verifier code specified")
        return

    verifier_code = args[0]
    auth = OAuthHandler(bot.tw.auth.consumer_key, bot.tw.auth.consumer_secret)
    auth.request_token = json.loads(chat.twitter_request_token)
    try:
        auth.get_access_token(verifier_code)
    except TweepError:
        bot.reply(update, "Invalid verifier code. Use /auth again")
        return

    chat.twitter_token = auth.access_token
    chat.twitter_secret = auth.access_token_secret
    chat.save()
    bot.reply(update, "Access token setup complete")
    api = tweepy.API(auth)
    settings = api.get_settings()
    tz_name = settings.get("time_zone", {}).get("tzinfo_name")
    cmd_set_timezone(bot, update, [tz_name])
예제 #2
0
def get_verification():

    #get the verifier key from the request url
    verifier = request.args['oauth_verifier']
    print(verifier)
    auth = OAuthHandler(CONSUMER_TOKEN, CONSUMER_SECRET)

    auth.request_token = {
        'oauth_token': request.args.get('oauth_token'),
        'oauth_token_secret': request.args.get('oauth_verifier')
    }

    # token = session['request_token']
    del session_t['request_token']

    # auth.set_request_token(token[0], token[1])

    try:
        auth.get_access_token(verifier)
        print('obtuve el access token')
        print(auth.access_token)
        print(auth.access_token_secret)
        print('termine')
    except tweepy.TweepError:
        print('Error! Failed to get access token.')

    #now you have access!
    api = tweepy.API(auth)

    #store in a db
    bdd['api'] = api
    bdd['access_token_key'] = auth.access_token
    bdd['access_token_secret'] = auth.access_token_secret
    print(bdd)
    return flask.redirect(flask.url_for('start'))
def cmd_verify(update: telegram.Update, context: CallbackContext) -> None:
    args = context.args
    bot = context.bot
    chat, _created = TelegramChat.get_or_create(
        chat_id=update.message.chat.id,
        tg_type=update.message.chat.type,
    )
    if not chat.twitter_request_token:
        bot.reply(update, "Use /auth command first")
        return
    if len(args) < 1:
        bot.reply(update, "No verifier code specified")
        return
    verifier_code = args[0]
    auth = OAuthHandler(bot.tw.auth.consumer_key, bot.tw.auth.consumer_secret)
    auth.request_token = json.loads(chat.twitter_request_token)
    try:
        auth.get_access_token(verifier_code)
    except TweepyException:
        bot.reply(update, "Invalid verifier code. Use /auth again")
        return
    chat.twitter_token = auth.access_token
    chat.twitter_secret = auth.access_token_secret
    chat.save()
    bot.reply(update, "Access token setup complete")
    api = tweepy.API(auth)
    settings = api.get_settings()
    tz_name = settings.get("time_zone", {}).get("tzinfo_name")
예제 #4
0
    def get_token(self, oauth_token, oauth_token_secret, oauth_verifier):
        auth = OAuthHandler(self._consumer_key, self._consumer_secret)
        auth.request_token = {'oauth_token': oauth_token,
                              'oauth_token_secret': oauth_token_secret}

        auth.get_access_token(oauth_verifier)
        self._access_token = auth.access_token
        self._access_token_secret = auth.access_token_secret
        self._setup_apis()

        return self._access_token, self._access_token_secret
예제 #5
0
def callback(request):
    unauthed_token = request.session.get('unauthed_token', None)
    if not unauthed_token:
        return HttpResponse("No un-authed token cookie")
    token = oauth.OAuthToken.from_string(unauthed_token)
    if token.key != request.GET.get('oauth_token', 'no-token'):
        return HttpResponse("Something went wrong! Tokens do not match")
    verifier = request.GET.get('oauth_verifier')
    handler = OAuthHandler(settings.TWITTER_CONSUMER_KEY,
               settings.TWITTER_CONSUMER_SECRET,
               secure=True)
    handler.request_token = token
    access_token = handler.get_access_token(verifier)

    # save token against user
    user = User.objects.get(pk=request.session['user_id'])
    profile = user.get_profile()
    profile.access_token = access_token.key
    profile.access_token_secret = access_token.secret
    profile.save()

    redirect = reverse('fundraiser-page', kwargs={'fundraiser_id': profile.jg_page_id})
    return HttpResponseRedirect(redirect)
def cmd_verify(bot, update, args, chat):
    if not chat.twitter_request_token:
        bot.reply(update, "Use /auth command first")
        return
    if len(args) < 1:
        bot.reply(update, "No verifier code specified")
        return
    verifier_code = args[0]
    auth = OAuthHandler(bot.tw.auth.consumer_key, bot.tw.auth.consumer_secret)
    auth.request_token = json.loads(chat.twitter_request_token)
    try:
        auth.get_access_token(verifier_code)
    except TweepError:
        bot.reply(update, "Invalid verifier code. Use /auth again")
        return
    chat.twitter_token = auth.access_token
    chat.twitter_secret = auth.access_token_secret
    chat.save()
    bot.reply(update, "Access token setup complete")
    api = tweepy.API(auth)
    settings = api.get_settings()
    tz_name = settings.get("time_zone", {}).get("tzinfo_name")
    cmd_set_timezone(bot, update, [tz_name])