ということでとりあえずFlickrに写真をアップロードするところからやってみた。
まぁこういったシェルスクリプトは誰かが作ってるだろうと探してみた。
Githubにflickr-shell-uploaderというのがあったので試しに使ってみた。
wget -O flickr-shell-uploader.sh https://raw.githubusercontent.com/stengland/flickr-shell-uploader/master/flickr-shell-uploader
でダウンロードして(長いけど1行)
chmod a+x flickr-shell-uploader.sh
で実行可能権限を与えて
./flickr-shell-uploader.sh -i test.jpg
でtest.jpgのアップロードを試みた。
しかし
"The Flickr API returned an error while retrieving the frob. Please try again."
というエラーが出てOAuthまで進まない…
このスクリプトの更新日時みると4年前だしAPIの仕様かわったのかな?
何か仕様変更ないかなーと探してみると今年の6月27日からAPIがSSL通信しか受け付けなくなったらしい。
たしかにスクリプトを覗いてみるとAPIにはhttpでアクセスしてるじゃん!
というわけで修正した
119行目
FROBINFO=$(curl -s -F method=flickr.auth.getFrob -F api_key=${APIKEY} -F api_sig=${SIG} "https://flickr.com/services/rest")
147行目
TOKENINFO=$(curl -s -F method=flickr.auth.getToken -F api_key=${APIKEY} -F frob=${FROB} -F api_sig=${SIG} "https://flickr.com/services/rest")
164行目
TOKENINFO=$(curl -s -F method=flickr.auth.checkToken -F api_key=${APIKEY} -F auth_token=${TOKEN} -F api_sig=${SIG} "https://flickr.com/services/rest")
201行目
printf %b " -F api_sig=${SIG} -F photo=@\"${FILE}\" https://api.flickr.com/services/upload/)" >> $TMPFILE
この4行を上の用に書き換えてもう一度写真をアップロードしてみた。
すると初回アップロード時はTOKENを取得するためのURLが表示されるのでそのURLをコピーしてブラウザで開いてFlickrでログオンする。
そしてこのアプリを承認し、シェルスクリプトに戻ってエンターを押す
すると画像がアップロードされてるはず!
とりあえずこれでシェルスクリプトから画像をアップロードできるようになった。
しかし
"The Flickr API returned an error while retrieving the frob. Please try again."
というエラーが出てOAuthまで進まない…
このスクリプトの更新日時みると4年前だしAPIの仕様かわったのかな?
何か仕様変更ないかなーと探してみると今年の6月27日からAPIがSSL通信しか受け付けなくなったらしい。
たしかにスクリプトを覗いてみるとAPIにはhttpでアクセスしてるじゃん!
というわけで修正した
119行目
FROBINFO=$(curl -s -F method=flickr.auth.getFrob -F api_key=${APIKEY} -F api_sig=${SIG} "https://flickr.com/services/rest")
147行目
TOKENINFO=$(curl -s -F method=flickr.auth.getToken -F api_key=${APIKEY} -F frob=${FROB} -F api_sig=${SIG} "https://flickr.com/services/rest")
164行目
TOKENINFO=$(curl -s -F method=flickr.auth.checkToken -F api_key=${APIKEY} -F auth_token=${TOKEN} -F api_sig=${SIG} "https://flickr.com/services/rest")
201行目
printf %b " -F api_sig=${SIG} -F photo=@\"${FILE}\" https://api.flickr.com/services/upload/)" >> $TMPFILE
この4行を上の用に書き換えてもう一度写真をアップロードしてみた。
すると初回アップロード時はTOKENを取得するためのURLが表示されるのでそのURLをコピーしてブラウザで開いてFlickrでログオンする。
そしてこのアプリを承認し、シェルスクリプトに戻ってエンターを押す
すると画像がアップロードされてるはず!
とりあえずこれでシェルスクリプトから画像をアップロードできるようになった。
0 件のコメント:
コメントを投稿