Service Providerまで作る必要はないよなぁと思っているのでConsumerだけ。気が向いたらそのうち実装するかも。
っで、とりあえずTwitterに投稿できたので浮かれて書いてる。コードは以下。
(import (rnrs) (net oauth) (text sxml ssax)
(sagittarius io)
(srfi :26 cut))
(define (call/twitter-api->sxml token method path param . opt)
(define (call)
(if token
(access-protected-resource (string-append "http://api.twitter.com" path)
token
:user-parameters param
:request-method method)
(assertion-violation 'call/twitter-api->sxml
"later")))
(define (retrieve body status hint advice)
(call-with-input-string body (cut ssax:xml->sxml <> '())))
(call-with-values call retrieve))
(define (twitter-update/sxml token message . opt)
(call/twitter-api->sxml token 'POST "/1/statuses/update.xml"
`(("status" ,message))))
(define access-token (make-access-token
:key "アクセストークンを入れてね"
:secret "アクセスシークレットを入れてね"
:consumer
(make-consumer-token
:key "コンシューマトークンを入れてね"
:secret "コンシューマシークレットを入れてね")))
(print
(twitter-update/sxml access-token "Hello world from Sagittarius Scheme!!"))
これだけで投稿が出来た。まぁ、アクセストークンを作る部分とかもあるんだけど、一度作ったら使いまわしなので略。Twitter用のAPI集はSagittarius本体に入れるつもりはないんだけど、どこかに置けたらいいなぁ。これで仕事してる振りして呟ける(違
そういえば、OAuthの2.0どうしよう。今の作りだとガッツリ1.0用だ・・・
No comments:
Post a Comment