Script pour automatiser la connexion OAuth pour Twitter

Ceci est mon premier message, je ne sais pas comment utiliser Qiita.

J'ai eu l'occasion d'écrire un test pour la connexion OAuth de Twitter sans utiliser de navigateur, donc je ne retire que les parties qui peuvent être généralisées et je les laisse. Cependant, je pense parce que c'est un problème que je ne peux pas déterminer s'il s'agit d'une erreur de l'API Twitter ou d'une erreur de la fonction sous test.

twitteroauth.py


# -*- coding: utf-8 -*-
 
import mechanize
import cookielib
 
 
class TwitterWebOAuth(object):
    """Twitter Web OAuth"""
 
    def __init__(self, username, password, is_cookie=False):
        self._is_cookie = is_cookie
        self._username = username
        self._password = password
 
    def oauth(self, oauth_url, callback_proc):
        """OAuth with twitter account"""
        br = self._browser()
        br.open(oauth_url)
        self._login_with_twitter(br)
        url = br.geturl()
        return callback_proc(url, br)
 
    def patch(self, proc):
        """patch script using Browser"""
        self._browser()
        return proc()
 
    def _browser(self):
        br = mechanize.Browser()
        br.set_handle_equiv(True)
        br.set_handle_redirect(True)
        br.set_handle_referer(True)
        br.set_handle_robots(False)
        if self._is_cookie:
            cj = cookielib.CookieJar()
            br.set_cookiejar(cj)
        return br
 
    def _login_with_twitter(self, br):
        url = br.geturl()
        br.open(url)
        br.select_form(nr=0)
        br.form['session[username_or_email]'] = self._username
        br.form['session[password]'] = self._password
        br.submit()

Exemple

Connectez-vous à Qiita et ouvrez votre propre écran de paramètres. N'oubliez pas «pip install mécaniser».

test.py


# -*- coding: utf-8 -*-

from twitteroauth import TwitterWebOAuth


def callback(url, br):
    br.open('https://qiita.com/settings/profile')
    url = br.geturl()
    print url
    #Je pensais que je ferais quelque chose sur l'écran des paramètres, mais ça devient compliqué


if __name__ == '__main__':
    to = TwitterWebOAuth('naoiwata', 'xxxxxx', True)
    to.oauth(
        'https://qiita.com/auth/twitter',
        callback
    )

Lorsque j'exécute le fichier, il génère https: // qiita.com / settings / profile, il semble donc que je me suis connecté et que j'ai ouvert l'écran de configuration de mon profil.

Recommended Posts

Script pour automatiser la connexion OAuth pour Twitter
Twitter OAuth avec Django
Tentative d'automatisation de Pre-Connect R
Essayez d'analyser les tendances Twitter
Publier sur Twitter en utilisant Python
J'ai essayé d'automatiser tout, y compris l'authentification en deux étapes de Google OAuth