綾小路龍之介の素人思考

[google] google readerにfeedを登録するスクリプト

ぼくは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

問題点

  1. google readerにログインするための情報がプロセスリストに載る。
  2. SIDを決める際にgrepとかでやっているのでgoogleの仕様変更におそらく敏感に反応して、使えなくなる可能性が高い。
  3. いちいち-uとか打たないとだめ
  4. まとめて登録できない。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
  1. GoogleReaderAPI - pyrfeed - Google Code
  2. Google Reader APIの叩き方 - by edvakf in hatena
  3. Google Readerのフィード翻訳API - by edvakf in hatena
  4. google reader api - Google 検索
  5. Google Reader API - Google 検索
  6. 未公開の Google Reader API を探る - WebOS Goodies
  7. cURL - How To Use (マニュアルページ日本語訳)
  8. Google Calendar APIの基礎 : Under Construction, Baby
  9. シェルスクリプト 改行 - Google 検索
  10. Bシェルスクリプトのすすめ

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2009-03-28T21:34:48+09:00
  2. Modified: 2009-03-28T16:13:54+09:00
  3. Generated: 2016-12-16T23:09:16+09:00