はてなフォトライフへの画像アップロードがHTTPSのみになっていたので対応
はてなブログへの自動投稿がいつからかエラーとなるようになっていた。
気づいてはいたものの、「画像投稿数か容量上限かな」と思い放置していたが、調べて見ると画像は月ごとの容量に制限はあるもののトータルは無制限とのこと。
そこで原因を探って対処する。
アップロードするアプリのログ:
画像のアップロードに失敗しました
status_code: 500
message: Bad requestAtom feed body is required.
a.jpg :エラー ( 1 / 2 )
画像のアップロードに失敗しました
status_code: 500
message: Bad requestAtom feed body is required.
b.jpg :エラー ( 2 / 2 )
送信対象の画像がありません.
完了しました
はてなサービスへの認証の手順は以下の通り。
http://developer.hatena.ne.jp/ja/documents/auth/apis/wsse
AtomフィードのBodyがない・・・?
パケットキャプチャしレスポンスを覗いてみると、
HTTP/1.1 302 Moved Temporarily
Server: awselb/2.0
Date: Sun, 17 Nov 2019 18:31:30 GMT
Content-Type: text/html
Content-Length: 126
Connection: keep-alive
Location: https://f.hatena.ne.jp:443/atom/post/
<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
</body>
</html>
HTTPSでアクセスしろということかな・・・?
画像送信テスト用のテストコードの、POST先のURLをHTTPSにて再実行→成功
アプリのコードを変更してテスト→成功
たったこれだけのことだったのか・・・しかしなぜアナウンスもなく?いまさら・・・
普段使い用にpyinstallerでEXE化して実行:
_tkinter.TclError: couldn't open "settings.png": no such file or directory
リソース同梱でビルドできてない模様・・・
調べて見ると使用していたアプリはCUI仕様のものだったようなので、(リソース同梱の方法はいろいろあるようだけど)とりあえずCUI仕様でEXEビルドを行う。
(※後ほど確認したところ、GUI版はリソースをファイルで同梱してリリースしていた!)
CUI版の動作を確認したところ、うまく動いてない
→main時の処理に誤りがあったので修正
ーーー
if __name__ == '__main__':
root = HatenaposterUI()
root.mainloop()
ーーー
問題なく動作した。
これで今後は自動的に記事がアップされるはず。しばらく様子見。