Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
shizuoka.py #6 and shizudev LT
確定申告をpythonで
乗り切る
twitter@hrs_sano645
about me
● Twitter@hrs_sano645
● 静岡県富士市で自動車金型設計業のIT便利屋です
● 兼業ですが米農家です
● 東海大学 石井研究室に週一でお手伝いしてます
● 最近やってたこと
○ fuji.5374.jp
○...
確定申告終わりましたか!
やってみた人いますか?
まだ終わってない。。。
今週来週頑張ります。。
(せっかく会計ソフトも
入れたのになぜ、、)
思えば昨年始め
確定申告は毎年大変
(帳簿とか請求書とか集めること)
最近流行りのクラウド会計ソフト
を入れてみよう!!
どんなものがあるか
● freee
● やよい会計クラウド
● MFクラウド会計・確定申告(MoneyFowerd)
とりあえずMoneyFowerd使ってたので
MFクラウド会計使って見た
(ステマじゃないよ!)
日々の業務に取り入れる...
インターネットバンキング経由で
帳簿がまあまあ自動に作れるの
ありがたいです。
あるときに「MFクラウド請求書」
なるサービスに気がつく
こういうサービス
MFクラウド請求書の特徴
● MFクラウド会計と連携。帳簿に自動的に計上
● GUI/ブラウザベース
● PDFが作れる
そうなんだ!すごーい!
日常業務に取り入れる→快適!
月日が流れて年末頃...
日々忙しく過ごしてると
請求書出し忘れて慌てる自体多数
MFクラウド請求書の特徴
● MFクラウド会計と連携。帳簿に自動的に計上
● GUI/ブラウザベース
● PDFが作れる
割りと入力する場所が多い
マウス操作が多めで 1枚作るのにそれ
なりに時間がかかってる
早く作りたいのに作れない
GUI ここ一番に来て 面倒に...
とある日、ヘルプ探索してると気がつく
API???!!!
REST APIがあるらしい!
● 請求書作成ソフト「MFクラウド請求書」
○ oauth2認証を使う
○ 請求書の作成
○ PDFがダウンロードできる
請求書作成がAPI経由でできる!
MFクラウド請求書 APIの概要
どうやってやる?
もちろんPython!
考えなければいけないこと
● oauth2の認証どうするか
● 実際にPDFのダウンロードをどうするか
oauth2どうする?
oauth2client これはgoogle向けっぽくて使い勝手が謎
oauth2
(pipのパッケージ名)
汎用紛らわしいけど oauth1向けのパッケージ
python-oauth2
(pipのパッケージ名)
汎用ら...
oauth2どうする?
oauth2client これはgoogle向けっぽくて使い勝手が謎
oauth2
(pipのパッケージ名)
汎用紛らわしいけど oauth1向けのパッケージ
python-oauth2
(pipのパッケージ名)
汎用ら...
requests-oauthlib
いい響きですね :D
pip install
書かなくてもいいレベルですが
pip install requests-oauthlib
(自動的にrequests, oauthlibも入ります)
oauth2認証
MFクラウド請求書API側で
アプリのクライアントトークンを作る
● scope
(ほしい権限, write>read)
● redirect url
(認証後のcodeを飛ばすリダイレ
クト先)
↓
● Client ID
...
oauth2認証
githubを扱うチュートリアルを参考に
from requests_oauthlib import OAuth2Session
# 取得したClient ID, Client Secret を入力
client_id = "...
oauth2の認証
#セッション作成
mfcloud_invoice = OAuth2Session(client_id, scope="write",
redirect_uri="https://example.com", state=Non...
認証用URLからリダイレクトURLを作る
pickleでtoken保存
token保存しておけば毎回認証する必要もなくなる
# アクセストークンを使ってfetchする
token = mfcloud_invoice.fetch_token(token_url, client_secre...
PDFをダウンロードする
requestsでそのままダウンロード。保存は普通にファイルとして
# 請求書のIDをDL
invoice_id = json.loads(invoice_list.content)["billings"][0]["i...
結構簡単でいいね!
まとめ
● 確定申告面倒だからお早めに
● クラウド会計サービス使うと楽できます
● 不便なところは(できれば)自分たちでなんとかする
● requests-oauthlib便利なのでおすすめです!
○ 今日一番言いたかったこと
● いらすと屋...
こうして確定申告が
まだ終わってないです!
今週来週頑張って終わらせます。。
Shizuoka.py #6 lt  確定申告をpythonで乗り切る
Upcoming SlideShare
Loading in …5
×

Shizuoka.py #6 lt 確定申告をpythonで乗り切る

1,489 views

Published on

shizuoka.py #6のLTネタです。

Published in: Engineering
  • Be the first to comment

Shizuoka.py #6 lt 確定申告をpythonで乗り切る

  1. 1. shizuoka.py #6 and shizudev LT 確定申告をpythonで 乗り切る twitter@hrs_sano645
  2. 2. about me ● Twitter@hrs_sano645 ● 静岡県富士市で自動車金型設計業のIT便利屋です ● 兼業ですが米農家です ● 東海大学 石井研究室に週一でお手伝いしてます ● 最近やってたこと ○ fuji.5374.jp ○ google-photos-enbedtab-generator ○ pythonあんまり書かずに請求書ばかり作ってました
  3. 3. 確定申告終わりましたか! やってみた人いますか?
  4. 4. まだ終わってない。。。 今週来週頑張ります。。
  5. 5. (せっかく会計ソフトも 入れたのになぜ、、)
  6. 6. 思えば昨年始め
  7. 7. 確定申告は毎年大変 (帳簿とか請求書とか集めること)
  8. 8. 最近流行りのクラウド会計ソフト を入れてみよう!!
  9. 9. どんなものがあるか ● freee ● やよい会計クラウド ● MFクラウド会計・確定申告(MoneyFowerd)
  10. 10. とりあえずMoneyFowerd使ってたので MFクラウド会計使って見た (ステマじゃないよ!)
  11. 11. 日々の業務に取り入れる... インターネットバンキング経由で 帳簿がまあまあ自動に作れるの ありがたいです。
  12. 12. あるときに「MFクラウド請求書」 なるサービスに気がつく
  13. 13. こういうサービス
  14. 14. MFクラウド請求書の特徴 ● MFクラウド会計と連携。帳簿に自動的に計上 ● GUI/ブラウザベース ● PDFが作れる
  15. 15. そうなんだ!すごーい!
  16. 16. 日常業務に取り入れる→快適!
  17. 17. 月日が流れて年末頃...
  18. 18. 日々忙しく過ごしてると
  19. 19. 請求書出し忘れて慌てる自体多数
  20. 20. MFクラウド請求書の特徴 ● MFクラウド会計と連携。帳簿に自動的に計上 ● GUI/ブラウザベース ● PDFが作れる 割りと入力する場所が多い マウス操作が多めで 1枚作るのにそれ なりに時間がかかってる
  21. 21. 早く作りたいのに作れない GUI ここ一番に来て 面倒に...
  22. 22. とある日、ヘルプ探索してると気がつく
  23. 23. API???!!! REST APIがあるらしい!
  24. 24. ● 請求書作成ソフト「MFクラウド請求書」 ○ oauth2認証を使う ○ 請求書の作成 ○ PDFがダウンロードできる 請求書作成がAPI経由でできる! MFクラウド請求書 APIの概要
  25. 25. どうやってやる?
  26. 26. もちろんPython!
  27. 27. 考えなければいけないこと ● oauth2の認証どうするか ● 実際にPDFのダウンロードをどうするか
  28. 28. oauth2どうする? oauth2client これはgoogle向けっぽくて使い勝手が謎 oauth2 (pipのパッケージ名) 汎用紛らわしいけど oauth1向けのパッケージ python-oauth2 (pipのパッケージ名) 汎用らしい。WEBサービスの組み込みに特 化してるっぽい oauthlib これが一般的なoauthライブラリかも, v1もv2 も対応 requests-oauthlib requests向けのoauthlibサポートパッケージ
  29. 29. oauth2どうする? oauth2client これはgoogle向けっぽくて使い勝手が謎 oauth2 (pipのパッケージ名) 汎用紛らわしいけど oauth1向けのパッケージ python-oauth2 (pipのパッケージ名) 汎用らしい。WEBサービスの組み込みに特 化してるっぽい oauthlib これが一般的なoauthライブラリかも, v1もv2 も対応 requests-oauthlib requests向けのoauthlibサポートパッケージ
  30. 30. requests-oauthlib
  31. 31. いい響きですね :D
  32. 32. pip install 書かなくてもいいレベルですが pip install requests-oauthlib (自動的にrequests, oauthlibも入ります)
  33. 33. oauth2認証 MFクラウド請求書API側で アプリのクライアントトークンを作る ● scope (ほしい権限, write>read) ● redirect url (認証後のcodeを飛ばすリダイレ クト先) ↓ ● Client ID ● Client Secret https://example.com
  34. 34. oauth2認証 githubを扱うチュートリアルを参考に from requests_oauthlib import OAuth2Session # 取得したClient ID, Client Secret を入力 client_id = "***" client_secret = "***" # MFクラウド請求書のOAuthで使うエンドポイントURL authorization_base_url = 'https://invoice.moneyforward.com/oauth/authorize' token_url = 'https://invoice.moneyforward.com/oauth/token'
  35. 35. oauth2の認証 #セッション作成 mfcloud_invoice = OAuth2Session(client_id, scope="write", redirect_uri="https://example.com", state=None) #認証 authorization_url, state = mfcloud_invoice.authorization_url(authorization_base_url) #(次のページで認証した後のコールバックURLを貼り付ける) print('Please go here and authorize,', authorization_url) redirect_response = input('Paste the full redirect URL here:')
  36. 36. 認証用URLからリダイレクトURLを作る
  37. 37. pickleでtoken保存 token保存しておけば毎回認証する必要もなくなる # アクセストークンを使ってfetchする token = mfcloud_invoice.fetch_token(token_url, client_secret=client_secret, authorization_response=redirect_response) # 取得したtokenをpickleで直列化 with open("access_token.dat", "wb") as access_token_cache: pickle.dump(token, access_token_cache)
  38. 38. PDFをダウンロードする requestsでそのままダウンロード。保存は普通にファイルとして # 請求書のIDをDL invoice_id = json.loads(invoice_list.content)["billings"][0]["id"] # 適当なファイル名で保存: filename = f"invoice_{invoice_id}.pdf" with open(filename, 'wb') as fd: for chunk in invoice_pdf.iter_content(chunk_size=128): fd.write(chunk)
  39. 39. 結構簡単でいいね!
  40. 40. まとめ ● 確定申告面倒だからお早めに ● クラウド会計サービス使うと楽できます ● 不便なところは(できれば)自分たちでなんとかする ● requests-oauthlib便利なのでおすすめです! ○ 今日一番言いたかったこと ● いらすと屋さん汎用性高すぎる
  41. 41. こうして確定申告が
  42. 42. まだ終わってないです! 今週来週頑張って終わらせます。。

×