Amazon S3に置いた画像ファイルがGitHub issue, Line, Facebook Messengerでどう展開されるか試してみた

はじめに

こんぬづは、小学生の弟の誕生日プレゼントに、カードゲームのブースターパックを箱買いして夢を与えた田中です。

さて...

S3に置いた画像リソースって、各サービスでどんな展開のされ方をするんだろう?(あるいはされないかな?)」

人はふとそんなことを考える瞬間があります。サービス開発の途中で「S3に置くだけで、画像のSNSシェアとかが実現できるならラクじゃね?」と考える瞬間が。なので調べてみました。ちなみに以下の記事の続きです。

結果

結果から先にいうと以下の通り。OGPを設定したhtmlも調査対象に含んでいるのは、前回を踏襲したかったからです。(> Twitterでは画像リソースの置かれたリンクを貼るだけでは画像を展開してくれません。なので、近似した解決策として OGPを設定したhtmlをどう展開してくれるか ということも調べてみました。)

サービス 画像 OGP
GitHub issue × ×
LINE × ×
Facebook Messenger ×

残念ながらFacebook Messenger以外のサービスではURLが展開されませんでした。いずれのサービスも画像を添付する機能があるため、おそらく「画像を投稿したいなら、リンクではなくAPI(ないし投稿用フォーム)からパラメータに画像データをセットして投稿してくれ」ということだと思います。当たり前といえば当たり前な気がします。

ここから先はどういう調べ方をしたかと、展開のされ方を画像付きで載せていきます。

調べ方

  • パブリックアクセス権限を付与したS3バケットを作成する
  • 作成したS3バケットに、パブリックアクセス権限と Content-Type: image-jpeg を設定した .jpg ファイルを置く
  • (作成したS3バケットに、パブリックアクセス権限を付与してOGPを設定したhtmlファイルを置く)
  • 各サービスでファイルのリンクを貼って投稿する

OGPの設定は以下の通り。

<!DOCTYPE html>
<html prefix="og: http://ogp.me/ns#">
    <head>
        <!-- 共通項目 -->
        <meta property="og:title" content="ページのタイトル" />
        <meta property="og:type" content="ページのタイプ" />
        <meta property="og:url" content="ページのURL" />
        <meta property="og:image" content="http://s3.amazonaws.com/tawake-dev/ktanaka117.jpg" />
        <meta property="og:site_name"  content="サイト名" />
        <meta property="og:description" content="ページのディスクリプション" />

        <!-- Twitter -->
        <meta name="twitter:title" content="ページのタイトル" />
        <meta name="twitter:description" content="ページのディスクリプション" />
        <meta name="twitter:card" content="summary_large_image">
        <meta name="twitter:site" content="@ktanaka117" />
        <meta name="twitter:creator" content="@ktanaka117">
        <meta name="twitter:image" content="http://s3.amazonaws.com/tawake-dev/ktanaka117.jpg" />
    </head>
</html>>

GitHub issue

画像

OGP

LINE

画像

OGP

FaceBook Messenger

画像

OGP

まとめ

またもやS3うんぬんというより、各サービスの仕様を調べる感じになりました。また調べてみたいサービスが出てきたら調べます。

参考・関連