ぼくは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シェルスクリプトのすすめ