ぼくはfeed購読にgoogle readerを使っているのだけれど、feed登録するのに、いちいちgoogleにログインするのが面倒なので、google reader APIを使って登録用のスクリプトを書いてみた。
必要なものの導入とログイン情報の書き換え
curlが導入されていないと使えないので、適当に導入してください。ただし、--data-urlencodeを使っているため、curl>=7.18.0。debian lennyで導入するには下のような感じ。debian etchのcurlは古い(7.15.5)のでだめ。
# aptitude -R install curl # curl --version curl 7.18.2 (i486-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.8 libssh2/0.18 Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
で、下のソースをpushfeed.shという名前で保存し、EMAILとPASSWD変数をgoogle readerにログインするときのものに変更する。
使い方
-uオプションの引数に適当なfeedのURLを渡して走らせる。成功すれば最後にOKと表示される。
$ sh ./pushfeed.sh -u http://example.com/feed.xml OK
問題点
- google readerにログインするための情報がプロセスリストに載る。
- SIDを決める際にgrepとかでやっているのでgoogleの仕様変更におそらく敏感に反応して、使えなくなる可能性が高い。
- いちいち-uとか打たないとだめ
- まとめて登録できない。1個づつしか登録できない
ソース
#!/bin/bash function help () { CMDNAME=`basename $0` echo "Usage: $CMDNAME -u feedurl" } if test $# -eq 0; then help exit 1 fi while getopts u: OPT do case $OPT in "u" ) FLG_U="TRUE";VALUE_U="$OPTARG" ;; * ) help;exit 1 ;; esac done URL_LOGIN="https://www.google.com/accounts/ClientLogin" URL_TOKEN="http://www.google.com/reader/api/0/token" URL_SUBSCRIPTION_EDIT="http://www.google.com/reader/api/0/subscription/edit" S="feed/${VALUE_U}" EMAIL="hoge" PASSWD="hoga" SERVICE="reader" AC="subscribe" #CURL="curl -Ssv " CURL="curl -Ss " SID=`\ ${CURL} \ --data-urlencode Email=${EMAIL} \ --data-urlencode Passwd=${PASSWD} \ --data-urlencode service=${SERVICE} \ ${URL_LOGIN} \ | grep '^SID=' \ ` #echo ${SID} T=`\ ${CURL} \ --cookie ${SID} \ ${URL_TOKEN} \ ` #echo ${T} ${CURL} \ --cookie ${SID} \ --data-urlencode s=${S} \ --data-urlencode ac=${AC} \ --data-urlencode T=${T} \ ${URL_SUBSCRIPTION_EDIT} exit
- GoogleReaderAPI - pyrfeed - Google Code
- Google Reader APIの叩き方 - by edvakf in hatena
- Google Readerのフィード翻訳API - by edvakf in hatena
- google reader api - Google 検索
- Google Reader API - Google 検索
- 未公開の Google Reader API を探る - WebOS Goodies
- cURL - How To Use (マニュアルページ日本語訳)
- Google Calendar APIの基礎 : Under Construction, Baby
- シェルスクリプト 改行 - Google 検索
- Bシェルスクリプトのすすめ