このリポジトリには、gogmocoin ライブラリを使用したGMO Coin APIのサンプルコードが含まれています。
gogmocoinは、GMO CoinのREST APIとWebSocket APIをGoから簡単に利用できるラッパーライブラリです。このリポジトリには、公開API(Public API)とプライベートAPI(Private API)の両方のサンプルコードが用意されています。
app/
├── public/ # 公開APIのサンプル
│ ├── rest/ # 公開REST APIのサンプル
│ └── ws/ # 公開WebSocket APIのサンプル
└── private/ # プライベートAPIのサンプル
├── rest/ # プライベートREST APIのサンプル
└── ws/ # プライベートWebSocket APIのサンプル
- Go 1.21以上
- GMO CoinのAPIキーとシークレット(プライベートAPIを使用する場合)
go mod downloadプライベートAPIを使用するには、APIキーとシークレットを環境変数として設定する必要があります。
.env.exampleを.envにコピー:
cp .env.example .env.envファイルを編集し、あなたのAPIキーとシークレットを設定:
DEBUG_MODE=true
API_KEY=your_actual_api_key
API_SECRET=your_actual_api_secret
注意: .env ファイルにはAPIの認証情報が含まれるため、絶対にgitにコミットしないでください。このファイルは既に .gitignore に含まれています。
公開APIは認証不要で利用できます。
- status: 取引所のステータス確認
- orderbooks: オーダーブック(板情報)の取得
- trades: 約定履歴の取得
# ステータス確認
go run app/public/rest/status/main.go
# オーダーブック取得
go run app/public/rest/orderbooks/main.go
# 約定履歴取得
go run app/public/rest/trades/main.go- ticker: ティッカー情報のリアルタイム受信
- orderbooks: オーダーブック更新のリアルタイム受信
- trades: 約定情報のリアルタイム受信
# ティッカー情報の受信
go run app/public/ws/ticker/main.go
# オーダーブック更新の受信
go run app/public/ws/orderbooks/main.go
# 約定情報の受信
go run app/public/ws/trades/main.goプライベートAPIを使用するには、.env ファイルにAPIキーとシークレットを設定する必要があります。
- account_margin: 証拠金情報の取得
- account_assets: 資産残高の取得
- orders: 注文情報の取得
- executions: 約定情報の取得
- last_executions: 最新の約定情報の取得
- position_summary: ポジション情報のサマリー取得
- change_order: 注文の変更
- ws_auth: WebSocket認証トークンの管理
# 証拠金情報の取得
go run app/private/rest/account_margin/main.go
# 資産残高の取得
go run app/private/rest/account_assets/main.go
# 注文情報の取得
go run app/private/rest/orders/main.go- execution_events: 約定イベントのリアルタイム受信
- order_events: 注文イベントのリアルタイム受信
- position_events: ポジションイベントのリアルタイム受信
- position_summary_events: ポジションサマリーイベントのリアルタイム受信
# 約定イベントの受信
go run app/private/ws/execution_events/main.go
# 注文イベントの受信
go run app/private/ws/order_events/main.go
# ポジションイベントの受信
go run app/private/ws/position_events/main.goプライベートAPIのサンプルコードでは、godotenv/autoload を使用して .env ファイルから環境変数を自動的に読み込みます:
import (
"github.com/ijufumi/gogmocoin/v2/api/private/rest"
_ "github.com/joho/godotenv/autoload"
)
func main() {
// rest.New() は環境変数から自動的にAPI_KEYとAPI_SECRETを読み込みます
client := rest.New()
// ...
}サンプルコードでは、適切なエラーハンドリングを実装しています:
- REST API: エラーが発生した場合は
log.Printlnでログを出力してreturn - WebSocket API: 重大なエラーの場合は
log.Fatalで終了
このプロジェクトはMITライセンスの下で公開されています。詳細はLICENSEファイルを参照してください。
バグ報告や機能追加のリクエストは、GitHubのIssueでお願いします。Pull Requestも歓迎します。