2noの日記

メモ用

【wxPython】Qiita API(v1) でログインを試みる

本当は v2 の OAuth 認証を使いたいのだけど。

ここで使っている requests はこちら
http://docs.python-requests.org/en/latest/

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

import wxversion
wxversion.select("3.0")
import wx
import requests

def submit_handler(event):
    authorize(tc_name.GetValue(), tc_pass.GetValue())

def authorize(url_name, password):
    data   = { 'url_name': url_name, 'password': password }
    result = requests.post("https://qiita.com/api/v1/auth", data=data)
    print(result.text)

if __name__ == "__main__":
    app = wx.App()
    frame = wx.Frame(None, wx.ID_ANY, u"認証テスト")
    panel = wx.Panel(frame, wx.ID_ANY)
    sizer = wx.FlexGridSizer(rows=3, cols=2, hgap=15, vgap=0)

    st_name = wx.StaticText(panel, -1, u"ユーザ名")
    sizer.Add(st_name, flag=wx.ALL|wx.ALIGN_CENTRE_VERTICAL, border=5)
    tc_name = wx.TextCtrl(panel, wx.ID_ANY)
    sizer.Add(tc_name, flag=wx.ALL, border=5)

    st_pass = wx.StaticText(panel, -1, u"パスワード")
    sizer.Add(st_pass, flag=wx.ALL|wx.ALIGN_CENTRE_VERTICAL, border=5)
    tc_pass = wx.TextCtrl(panel, wx.ID_ANY, "", style=wx.TE_PASSWORD|wx.EXPAND)
    sizer.Add(tc_pass, flag=wx.ALL, border=5)

    sizer.Add((20, 20)) # スペース

    btn_submit = wx.Button(panel, wx.ID_ANY, u"認証")
    btn_submit.Bind(wx.EVT_BUTTON, submit_handler)
    sizer.Add(btn_submit, flag=wx.ALL, border=5)

    panel.SetSizer(sizer)
    panel.Fit()
    frame.Fit()

    frame.Show()
    app.MainLoop()

結果は認証毎に標準出力される。

f:id:wakuworks:20141118025103p:plain