本件、LINE社に問い合わせていたのですが、最新のアップデートでバグを修正したとの連絡をいただきました。 ただ、まだアプリをアップデートしていない人もいると思いますので、しばらくは対応が必要ですね。
S3で同じ現象が起こり困っていましたがこちらで原因がわかりスッキリです!
PCラインではs3から取得した画像が見えるのにiPad、iPhineでは見えたり見えなかったりとランダムで意味がわからない…と思っていました。
が、おそらく発行されるurlの中にデコーディングのエラーが発生すれば見えず、発生しなければ見える、といったランダム性があったのだと思います。
現在はURLをプログラム的にベタ打ちして(良いのかどうかはわかりませんが)、問題は解決された方に思われます。
早急なバグの修正を期待したいです。
GCPですが、同じ現象が発生いたしました!
調査の結果、iPhoneのLINEアプリから画像URLにアクセスする際に、クエリパラメータの値が一部改変されてしまうことが原因だということが分かりました。 具体的には「%2B」などのパーセントエンコーディングされた値がデコーディングされて、「+」に置き換わってしまいます。
調査の過程を下記に示します。 下記のようなURLの画像をLINE Message APIで投稿し、iPhone側から閲覧してみました。 オリジナル画像URL: https://my-awesome-app.com/a.jpg?val=%2B サムネイル画像URL: https://my-awesome-app.com/a.jpg?val=%2B%2B
通知画面には正常にサムネイルが表示されました。(スクショ画像1: https://rsasage.s3.ap-northeast-1.amazonaws.com/images/line-bug/attachment02.png )
トーク画面には画像アイコンのようなものだけ表示されました。(スクショ画像2: https://rsasage.s3.ap-northeast-1.amazonaws.com/images/line-bug/attachment01.png )
iPhoneからのリクエストURLは下記になります。(スクショ画像3: https://rsasage.s3.ap-northeast-1.amazonaws.com/images/line-bug/attachment03_01.png )
https://my-awesome-app.com/a.jpg?val=%2B%2B https://my-awesome-app.com/a.jpg?val=+ https://my-awesome-app.com/a.jpg?val=++
この調査から分かるように、クエリパラメータをiPhone側でデコーディングしてしまっているものと思われます。 1件目の正常なURLは通知時のURLだと思われます。
回避策として、パーセントエンコーディングなどを含まない別のURLを発行して、そこにアクセスすると元の期限付きURLにリダイレクトされるようにすると良いかと思います。
LINEアプリのバグと言えるので、LINEさんには修正お願いしたいです。
ContentTypeが image/json になっていますが、これって image/png の間違いだったりしませんか?