Pixela の Go クライアントを作りました

Pixela の Go クライアントを作りました。

github.com

書くこと

  • Pixela とは?
  • 使い方
  • インストール
  • 動機
  • まとめ

Pixela とは?

任意の数値を登録してアレのあれっぽくグラフを作れるクールな API サービスです。

詳しくは↓

pixe.la blog.a-know.me

使い方

package main

import (
    "log"
 
    "github.com/ebc-2in2crc/pixela-client-go"
)

func main() {
    client := pixela.NewClient("YOUR_NAME", "YOUR_TOKEN")

    // 新しいユーザーを作る
    result, err := client.CreateUser(true, true, "")
    if err != nil {
        log.Fatal(err)
    }
    if result.IsSuccess == false {
        log.Fatal(result.Message)
    }

    // 新しいグラフを作る
    result, err = client.Graph("graph-id").Create(
        "graph-name",
        "commit",
        pixela.TypeInt,
        pixela.ColorShibafu,
        "Asia/Tokyo",
        pixela.SelfSufficientNone,
        false,
                 false,
    )
    if err != nil {
        log.Fatal(err)
    }
    if result.IsSuccess == false {
        log.Fatal(result.Message)
    }

    // ピクセルに値を記録する
    result, err = client.Pixel("graph-id").Create("20180915", "5", "")
    if err != nil {
        log.Fatal(err)
    }
    if result.IsSuccess == false {
        log.Fatal(result.Message)
    }

    // ピクセルの値をインクリメントする
    result, err = client.Pixel("graph-id").Increment()
    if err != nil {
        log.Fatal(err)
    }
    if result.IsSuccess == false {
        log.Fatal(result.Message)
    }

    // 新しい webhook を作る
    webhook, err := client.Webhook().Create("graph-id", pixela.SelfSufficientIncrement)
    if err != nil {
        log.Fatal(err)
    }
    if webhook.IsSuccess == false {
        log.Fatal(webhook.Message)
    }

    // webhook を呼び出す
    result, err = client.Webhook().Invoke(webhook.WebhookHash)
    if err != nil {
        log.Fatal(err)
    }
    if result.IsSuccess == false {
        log.Fatal(result.Message)
    }
}

一応すべての API をサポートしています。

と書いておきながら PixeloptionalData プロパティと GraphpublishOptionalData プロパティは自分が使っていないせいか今のところサポートしていません。 対応しました。

インストール

$ go get -u github.com/ebc-2in2crc/pixela-client-go

動機

Pixela はシンプルでいろんなことに応用できるとても便利な API サービスです。 最近は Go のコードを書く機会があったので Go から Pixela を使いたいと思って Go クライアントを探したのですが、なんとなく車輪を再発明してみたくなったので作りました。

まとめ

バグとかあると思いますし「こーしたら使いやすくなる」とかあったらイシュー作ったり声かけてもらえると嬉しいです。

ということで Pixela の Go クライアントの紹介でした。