openapi-generator generate -g go -i pkg/freeeclient/api/openapi.yaml -o pkg/freeeclient --git-user-id Yoii-Inc --git-repo-id freee-gen-csv --additional-properties=packageVersion=0.2.0,packageName=freeeclient --type-mappings=integer=int64
- Remove go.mod, go.sum in pkg/freeeclient
freeeの取引履歴のうち、売上高のみ取り出しCSV(sales.csv)へ出力する
https://golang.org/doc/install 上記のリンクを参照
インストールされていれば、以下のコマンドを実行して確認可能
make --version
make devel-deps
./bin/gen-sales-csv
が生成される
make build
プロジェクト直下の.env.template
をコピーし、.env
を作成する。
https://developer.freee.co.jp/tutorials/starting-api
上記のリンクに従って行う。
ただし、コールバックURLにはurn:ietf:wg:oauth:2.0:oob
を入力する。
取得した値を、.env
のCLIENT_ID
とCLIENT_SECRET
へ入力する
https://developer.freee.co.jp/tutorials/getting-access-token
上記のリンクに従って行う。
まずは認可コードを取得する。その後、以下のPostを実行する。
curl -i -X POST \
-H "Content-Type:application/x-www-form-urlencoded" \
-d "grant_type=authorization_code" \
-d "client_id={クライアントId}" \
-d "client_secret={クライアントSecret}" \
-d "code={認可コード}" \
-d "redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob" \
'https://accounts.secure.freee.co.jp/public_api/token'
以下のようなレスポンスが返ってくる
{"access_token":"{アクセストークン}","token_type":"bearer","expires_in":86399,"refresh_token":"{リフレッシュトークン}","scope":"read write default_read","created_at":1620802518}
https://developer.freee.co.jp/docs/accounting/reference#/ 上記のリンクからAPIコールを行って取得する。
/api/1/companies
の鍵マークにアクセストークンを入力して実行する。
取得したら、.env
のCOMPANY_ID
へ入力する
# レスポンス例
{
"companies": [
{
"id": 1234567,
"name": null,
"name_kana": null,
"display_name": "開発用テスト事業所",
"role": "admin"
}
]
}
./bin/gen-sales-csv --access-token={アクセストークン} --refresh-token={リフレッシュトークン}
./out/sales.csv
が生成される。
また、トークンが./token.b
へ保存される
./bin/gen-sales-csv
./out/sales.csv
が生成される。
また、トークンの有効期限が切れた場合のリフレッシュは自動で行われ、./token.b
へ保存される