Hatena::ブログ(Diary)

駄文生産所 このページをアンテナに追加 RSSフィード

2014-04-24

Squeak Smalltalkで、チャットサービスTypetalkのAPIを叩く

Typetalk Hack Tokyoなるイベントが開催されたのであるが、それに参加してきたわけで。

クライアントライブラリ的な何かを書き、APIを4つばかり扱えるようにしたわけで。

APIの残りは8つ。そのうち続きを書いて、SqueakSourceかSmalltalkHubかGitHubあたりに置く。かも。


Typetalkの開発者サイトには、メッセージ投稿を行うサンプルコードが並んでいる*1。これらと等価Smalltalkコードを残す。


| accessToken authDic authRes clientId clientSecret json messageDic messageString topicId |

clientId := 'xxxxxxxxxxxxxxxxxxxx'.
clientSecret := 'xxxxxxxxxxxxxxxxxxxx'.
topicId := 'nnnn'.
messageString := 'Hello, Typetalk!'.

authDic := Dictionary new
                at: 'client_id' put: clientId;
                at: 'client_secret' put: clientSecret;
                at: 'grant_type' put: 'client_credentials';
                at: 'scope' put: 'topic.post';
                yourself.
authRes := WebClient new
                httpPost: 'https://typetalk.in/oauth2/access_token'
                content: (WebUtils encodeUrlEncodedForm: authDic)
                type: 'application/x-www-form-urlencoded'.
json := Json readFrom: authRes content readStream.
accessToken := json at: 'access_token'.


messageDic := Dictionary new
                at: 'message' put: messageString;
                yourself.
WebClient new
    httpPost: ('https://typetalk.in/api/v1/topics/' , topicId)
    content: (WebUtils encodeUrlEncodedForm: messageDic)
    type: 'application/x-www-form-urlencoded'
    do: [:request | 
        request 
            headerAt: 'Authorization' 
            put: ('Bearer ' , accessToken)].

goonshgoonsh 2014/04/25 02:13 お,10ヶ月近く経ったけど,ようやく復活?

kaminamikaminami 2014/04/25 08:27 なんというか、思い出しました。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/kaminami/20140424/p1