Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

APIの認証処理を整理 #42

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 27 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,17 @@ pip install pyzaim
- Zaim Developersでのアプリケーションの登録 (コンシューマID、コンシューマシークレットの発行)

1. https://dev.zaim.net/users/login にアクセスし、新しいアプリケーションを追加
1. ブラウザアプリを選択し、サービスのURLに以下を入力
```
http://127.0.0.1:5000/callback
```
1. コンシューマID、コンシューマシークレットが発行される
1. 「ブラウザアプリ」を選択し、サービスのURLに以下を入力
```
http://127.0.0.1:5000/callback
```
1. コンシューマID、コンシューマシークレットが発行される

- `.env`ファイルの作成 (必須ではないが作成しておくと便利)
```
CONSUMER_ID=(ここにコンシューマIDを記入、括弧は不要)
CONSUMER_SECRET=(ここにコンシューマシークレットを記入、括弧は不要)
```
- Google Chromeおよびseleniumの導入

## 使い方
Expand All @@ -45,34 +51,34 @@ pip install pyzaim
- アクセストークンの発行

```python
from pyzaim import get_access_token
import os
from dotenv import load_dotenv
from pyzaim import ZaimAPI

load_dotenv()

get_access_token()
CONSUMER_ID = os.environ.get("CONSUMER_ID")
CONSUMER_SECRET = os.environ.get("CONSUMER_SECRET")

api = ZaimAPI(CONSUMER_ID, CONSUMER_SECRET)

# コンシューマIDとコンシューマシークレットを聞かれるので入力
# 認証ページのURLが表示されるので、アクセスして許可
# 遷移先ページのcopyボタンを押して、oauth_verifierをコピー
# コピーしたoauth_verifierを入力
# 問題なければアクセストークンとアクセスシークレットが表示される

# 動作確認 (ユーザーID等のデータが取得されて、表示されればOK)
print(api.verify())
```

- APIを利用してデータを取得・操作

```python
from pyzaim import ZaimAPI

api = ZaimAPI('コンシューマID', 'コンシューマシークレット',
'アクセストークン', 'アクセスシークレット', 'verifier')

# 動作確認 (ユーザーID等のデータが取得されて、表示されればOK)
print(api.verify())

# データの取得
data = api.get_data()

# 支払いデータの登録
api.insert_payment_simple('日付(datetime.date型)', '金額(int)', 'ジャンル名',
'口座名', 'コメント', '品名', '店舗名') # 後半4つは任意入力
'口座名', 'コメント', '品名', '店舗名', 'receipt_id') # 後半5つは任意入力

# 使用できるジャンル名は以下で確認できる
print(api.genre_itos)
Expand All @@ -82,12 +88,14 @@ print(api.account_itos)

# 支払いデータの更新 (更新対象データのIDはapi.get_data()で確認)
api.update_payment_simple('更新対象データのID', '日付(datetime.date型)', '金額(int)',
'ジャンル名', '口座名', 'コメント', '品名', '店舗名') # 後半4つは任意入力
'ジャンル名', '口座名', 'コメント', '品名', '店舗名', 'receipt_id') # 後半5つは任意入力

# 支払いデータの削除
api.delete_payment('削除対象のデータのID')
```

- receipt_idはブラウザ版やモバイルアプリ版の「品目一覧表示」に対応したデータを登録するためのID、詳細な使い方は[こちら](https://github.com/liebe-magi/pyzaim/pull/39)を参照

### seleniumを用いたデータ取得

```python
Expand Down
16 changes: 15 additions & 1 deletion poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ requests-oauthlib = "2.0.0"
selenium = "4.22.0"
tqdm = "4.66.4"
flask = "^3.0.3"
python-dotenv = "^1.0.1"

[tool.poetry.dev-dependencies]

Expand Down
4 changes: 3 additions & 1 deletion pyzaim/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
from .pyzaim import ZaimAPI, ZaimCrawler, get_access_token
from .pyzaim import ZaimAPI, ZaimCrawler

__all__ = ["ZaimAPI", "ZaimCrawler"]
Loading