Yo,かわいいYo,Yo.

Yo,かわいいYo,Yo.

みなさんごきげんYo.

巷でNext Big Thingと話題沸騰中のYoですが APIが公開されていたのでちょっと遊んでみたYo!



APIでできること


  • Yoされたら特定のURLを叩く
  • 特定のユーザーまたはSubscriber全員にYo

以上。サービス同Yoシンプルです。



YoをブロードキャストするYoをつくったYo


弊社開発チームでは、だいぶ前からScrumの実践を試みているんですが、どーもデイリースクラムがうまくいかない。

そもそもメンバー全員が忘れてる、だれかが気づいててもめんどくさいので黙ってる。。etc

こんな時こそYoだYoね!

"Hey, Yo! Scurumの時間だYo!"的なノリで、誰かがYoしたら皆にYoが伝わる的なものがあったらいいYo.Ne?



やり方も超シンプル

1.developer.justyo.co/にいってAPIでつかうユーザーネームを取得

※注意点

  • API向けアカウントを取得するには普通のpersonalアカウントが必要
  • personalアカウントで既に使われてるアカウント名はAPI向けでも使えない

のでAPI向けで使いたいアカウント名を間違って管理用personalアカウントとして取得しちゃったりすると残念なことになる。

(DELETEYOに削除したいアカウントからYoすると消してくれるらしいけど未確認)



2.取得したAPIキーを使っていろいろやる

今回はYoアプリつくるなら当然Go言語であろうというわけではじめてGoを触ってみたYo。

helloworld並にシンプルなのではじめてでも簡単!

以下をGAEにデプロイしてAPI用のYoアカウントのコールバックにそのURLを指定しただけ。

package broadcastyo
import (
	"net/http"
	"net/url"
	"appengine"
	"appengine/urlfetch"
)

const API_TOKEN string = "API KEY HERE"
const YO_ALL string = "http://api.justyo.co/yoall/"

func init() {
	http.HandleFunc("/", handler)
}

func handler(w http.ResponseWriter, r *http.Request) {
	username := r.URL.Query()["username"]
	c := appengine.NewContext(r)
	client := http.Client{Transport: &urlfetch.Transport{Context:c}}
	if username != nil {
		res, err := client.PostForm(YO_ALL, url.Values{"api_token":{API_TOKEN}})
		if err != nil {
			c.Errorf("Error %s",err)
		}
		if res.StatusCode != 200{
			c.Warningf("yo failed: %s", res)
		}
	}else
	{
		c.Errorf("username and key required")
	}
}


これ楽しいYo!


シンプルすぎる為かネタ的な扱いを受けがちなYoだけど、 APIを触ってみて思ったのは、

これはもしかしたらスゴくよい!

極限までシンプルが故のパワーみたいなんを感じる。

  • 思いついたら超サクッと出来上がるので熱が冷めない
  • できることが限定されている故に逆に創造性が発揮される(気がする)

面白い使い方もいろいろ現れているみたいなので
皆様に置かれましても、YoAPIでいろいろあそんでみようYo!