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()
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