rfc.httpモジュールがhttpsコネクションをサポートします (今のところunix限定)。 コネクション自体は外部プログラム(stunnel) に依存します。
stunnel が入ってれば、サラッと動くようです。
入ってなければインストール。
自分の tumblr の quote をランダムにつぶやくボットとか、自分のふぁぼり(ふぁぼられではない)をランダムにつぶやくボットとかを serversman で動かしてるんですが、その url 短縮に使おうかなーと。
ソースはこんな感じ。
(use rfc.http) (use rfc.json) (use rfc.uri) (define *goo.gl-server* "www.googleapis.com") (define *goo.gl-request-uri* "/urlshortener/v1/url") (define my-api-key "hoge") (define (shorten-url url api-key) (body->json (^ _ (goo.gl-request http-post url api-key :msg (construct-json-string `(("longUrl" . ,url))))))) (define (expand-url url api-key) (body->json (^ _ (goo.gl-request http-get url api-key :more-req-uri #`"&shortUrl=,|url|")))) (define (body->json req) (receive (status header body) (req) (parse-json-string body))) (define (goo.gl-request method url api-key :key (more-req-uri "")(msg #f)) (let1 req-uri (string-append *goo.gl-request-uri* "?key=" api-key more-req-uri) (if msg (method *goo.gl-server* req-uri msg :content-type "application/json" :secure #t) (method *goo.gl-server* req-uri :secure #t)))) ;; (shorten-url "http://valvallow.blogspot.com/" my-api-key) ;; (shorten-url "http://practical-scheme.net/" my-api-key) ;; (expand-url "http://goo.gl/wvWgf" my-api-key) ;; (expand-url "http://goo.gl/ZThO" my-api-key)
0 件のコメント:
コメントを投稿