Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kurusugawa-computer/freee-go
freee API の go クライアント
https://github.com/kurusugawa-computer/freee-go
freee
Last synced: about 2 months ago
JSON representation
freee API の go クライアント
- Host: GitHub
- URL: https://github.com/kurusugawa-computer/freee-go
- Owner: kurusugawa-computer
- License: mit
- Created: 2024-01-24T13:40:34.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-02-27T12:57:49.000Z (11 months ago)
- Last Synced: 2024-06-21T18:12:45.181Z (7 months ago)
- Topics: freee
- Language: Go
- Homepage:
- Size: 50.8 KB
- Stars: 1
- Watchers: 7
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
freee-go
====[![GoDoc](https://godoc.org/github.com/smith-30/go-ffprobe?status.svg)](https://godoc.org/github.com/kurusugawa-computer/freee-go)
freee API の go クライアント
現在開発中です。
## Usage
```
go get github.com/kurusugawa-computer/freee-go
```https://developer.freee.co.jp/startguide/starting-api の手順でアプリケーションを作成し、`Client ID` と `Client Secret` を取得します。
`コールバックURL` には `http://localhost:/` を指定してください。
`` は実装するアプリケーション側で決定します。## Example
```golang
package mainimport (
"fmt"
"io"
"log"
"net/http"
"strconv"
"strings"freee "github.com/kurusugawa-computer/freee-go"
"github.com/kurusugawa-computer/freee-go/oauth"
)func main() {
clientID := "xxxx"
clientSecret := "xxxx"// アクセストークンを取得します。
accessToken, err := freee.Authorize(clientID, clientSecret, 8080,
oauth.WithPrompt(func(authorizeURL string) error {
fmt.Println("次のURLにアクセスして認証を行ってください。")
fmt.Println(authorizeURL)
return nil
}),
oauth.WithRenderer(func(w http.ResponseWriter, authorizationCode string, err error) {
content := "認証に成功しました。ブラウザを閉じてください。"
if err != nil {
content = "認証に失敗しました。ブラウザを閉じて、アプリケーションをもう一度実行してください。"
}
w.Header().Set("Content-Type", "text/plain; charset=UTF-8")
w.Header().Set("Content-Length", strconv.Itoa(len(content)))
w.WriteHeader(http.StatusOK)
io.Copy(w, strings.NewReader(content))
}),
)
if err != nil {
log.Fatalln(err)
}// freee API クライアントを作成します。
client, err := freee.New(clientID, clientSecret, accessToken)
if err != nil {
log.Fatalln(err)
}// ログインユーザーを取得します。
loginUser, err := client.GetLoginUser()
if err != nil {
log.Fatalln(err)
}fmt.Println(loginUser.ID)
}
```