Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

外部向けブログページにシェアボタンを付ける #6407

Closed
JunichiIto opened this issue Apr 10, 2023 · 18 comments
Closed

外部向けブログページにシェアボタンを付ける #6407

JunichiIto opened this issue Apr 10, 2023 · 18 comments

Comments

@JunichiIto
Copy link
Contributor

https://bootcamp.fjord.jp/articles/70 を書いてみましたが、読んだ人が記事を気軽にシェアできるように各種シェアボタンがあればいいなと思いました。

参考:以下は僕のブログに付いてるシェアボタンです。
Screenshot 2023-04-10 at 9 28 32

@komagata komagata added this to いつかやる in 開発 Apr 10, 2023
@machida machida moved this from いつかやる to やる in 開発 Apr 25, 2023
@machida
Copy link
Member

machida commented Apr 25, 2023

📝

参考: https://webdesign-trends.net/entry/3632

  • Twitter
  • Facebook
  • はてぶ

を設置。

  • 設置場所は以下の二箇所。
  • デザインはmachidaがやります。

上部

貼り付けた画像_2023_04_25_16_51

下部

貼り付けた画像_2023_04_25_16_52

@github-actions
Copy link

このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。

@github-actions
Copy link

このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。

@github-actions github-actions bot added the stale label Aug 26, 2023
@machida machida removed the stale label Aug 27, 2023
@github-actions
Copy link

このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。

@github-actions github-actions bot added the stale label Oct 27, 2023
@komagata komagata removed the stale label Nov 1, 2023
@machida machida moved this from やる to 今のイテレーション in 開発 Nov 15, 2023
@machida machida added the 1 label Nov 15, 2023
@88-99 88-99 moved this from 今のイテレーション to 作業中 in 開発 Nov 26, 2023
@machida
Copy link
Member

machida commented Nov 27, 2023

@88-99

https://bootcamp.fjord.jp/reports/84748#comment_150067
日報での質問

デザインは @machida さんがされるということで、class も町田さんが記述されるのであれば、以下のようにシェアするためのコードを並べておくだけでよろしいのでしょうか?

はい、それで大丈夫ですー

@88-99
Copy link
Contributor

88-99 commented Nov 27, 2023

@machida

ありがとうございます🙏かしこまりました。

@88-99
Copy link
Contributor

88-99 commented Dec 6, 2023

@machida , @komagata , @JunichiIto

2点質問させていただいてもよろしいでしょうか?
現在 X, Facebook, はてなブックマークの公式ページから取得したプラグインのサンプルコードを利用して以下のように書いています。

= link_to "X", "https://twitter.com/intent/tweet?url=https://bootcamp.fjord.jp/articles/#{@article.id}&hashtags=fjordbootcamp", target: :_blank, rel: "noopener noreferrer"
iframe [src="https://www.facebook.com/plugins/share_button.php?href=https%3A%2F%2Fbootcamp.fjord.jp%2Farticles%2F95&layout&size&width=102&height=20&appId"
  width="102" height="20" style="border:none;overflow:hidden" scrolling="no" frameborder="0"
  allowfullscreen="true" allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share"]
a [href="https://b.hatena.ne.jp/entry/s/bootcamp.fjord.jp/articles/#{@article.id}"
  class="hatena-bookmark-button" data-hatena-bookmark-layout="vertical-normal"
  data-hatena-bookmark-lang="ja" title="このエントリーをはてなブックマークに追加"]
  img [src="https://b.st-hatena.com/images/v4/public/entry-button/button-only@2x.png"
  alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;"]
  script type="text/javascript" src="https://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"
  • =linke_to〜 が X
  • iframe〜 が Facebook
  • a [href=〜 がはてなブックマーク
    のシェアボタンです。

ブラウザでの表示

Image from Gyazo

質問①

プラグインを使用しているのでスタイルが入ってしまうのですがよろしいでしょうか?

デザインはmachidaがやります。

↑についての質問です。
#6407 (comment)

質問②

rails では a タグの代わりに linke_to を使うことが主流ではないかと思うのですが、a タグのままでも構わないでしょうか?
はてなブックマークを linke_to で書こうとしましたが、うまくいきませんでした。

公式ページ

X
https://developer.twitter.com/en/docs/twitter-for-websites/tweet-button/overview

Facebook
https://developers.facebook.com/docs/plugins/share-button?locale=ja_JP

はてなブックマーク
https://b.hatena.ne.jp/guide/bbutton

@machida
Copy link
Member

machida commented Dec 6, 2023

@88-99 プラグインにデザインが入っていても大丈夫ですー。プラグインを使ったものをコミットしておいてください。

@88-99
Copy link
Contributor

88-99 commented Dec 6, 2023

@machida
ありがとうございます。かしこまりました。

@88-99
Copy link
Contributor

88-99 commented Dec 8, 2023

@machida , @komagata

Facebook のシェアボタンでエラーが出て解消することができておりません。
どのように対処したら良いかご教示いただけませんでしょうか?

エラー内容

ボタンを設置した画面のconsole上に出ています。

Error with Permissions-Policy header: Unrecognized feature: 'ambient-light-sensor'.
Error with Permissions-Policy-Report-Only header: Unrecognized feature: 'document-domain'.

エラーの再現方法

最新のコードを取得

git fetch

ブランチをチェックアウト

git checkout feature/add-share-buttons-on-blog-page-for-external

ブログ記事のいずれかを開いてconsoleを確認

http://localhost:3000/articles/

エラーが発生しているコード

app/views/articles/show.html.slim:47 :62

iframe [src="https://www.facebook.com/plugins/share_button.php?href=https%3A%2F%2Fbootcamp.fjord.jp%2Farticles%2F#{@article.id}&layout&size&width=102&height=20&appId"
  width="102" height="20" style="border:none;overflow:hidden" scrolling="no" frameborder="0"
  allowfullscreen="true" allow="autoplay; clipboard-write; encrypted-media; picture-in-picture"]

上記コードの取得方法

シェアボタン - Meta for Dvelopers にアクセス
https://developers.facebook.com/docs/plugins/share-button?locale=ja_JP

実際のブログ URL を入力してコードを取得
Image from Gyazo

iframe タブのコードをコピペ article ナンバー部分95#{article.id}に変更。
Image from Gyazo

考えたこと・調べたこと

Error with Permissions-Policy header: Unrecognized feature: 'ambient-light-sensor'.
Error with Permissions-Policy-Report-Only header: Unrecognized feature: 'document-domain'.
  • Unrecognized featureは機能が認識されていないという意味で、iframe で認識されていない機能があるのでエラーが出ているのではないか。
試したこと

src= URLより後ろを全て削除してボタンを押してみると、動作は変わらずエラーは出ました。

iframe [src="https://www.facebook.com/plugins/share_button.php?href=https%3A%2F%2Fbootcamp.fjord.jp%2Farticles%2F#{@article.id}"]

以下記事にも目を通しましたが、具体的にどうしたら良いのかがわかりませんでした。

ambient-light-sensor
現在の文書が、端末の周囲の環境における光量についての情報を、 AmbientLightSensor インターフェイスを通じて収集することを許可するかどうかを制御します。

document-domain
現在の文書が document.domain を設定することを許可するかどうかを制御します。このポリシーが無効な場合、 document.domain を設定しようとすると失敗し、 SecurityError の DOMException が発生します。

機能ポリシーが設定できていないからでしょうか。

@komagata
Copy link
Member

komagata commented Dec 9, 2023

@88-99 コードを追加する前は出ていないメッセージでしょうか?
何を追加すると出て、何を追加しなければ出ないなど、もう少しデバッグ・調査してみてください〜

@88-99
Copy link
Contributor

88-99 commented Dec 9, 2023

@komagata

ありがとうございます。

公式サイトから持ってきて追加したコード(プラグイン)は以下です。こちらのコードを書く前はエラーは出ておりませんでした。

iframe [src="https://www.facebook.com/plugins/share_button.php?href=https%3A%2F%2Fbootcamp.fjord.jp%2Farticles%2F#{@article.id}&layout&size&width=102&height=20&appId"
  width="102" height="20" style="border:none;overflow:hidden" scrolling="no" frameborder="0"
  allowfullscreen="true" allow="autoplay; clipboard-write; encrypted-media; picture-in-picture"]

上のコードから必要最小限に削ったコードでも全く同じエラーが出ますので、iframe を使うことが原因だと思っています。iframe の権限ポリシーが関係しているのではないかと考えています。

iframe [src="https://www.facebook.com/plugins/share_button.php?href=https%3A%2F%2Fbootcamp.fjord.jp%2Farticles%2F#{@article.id}]

【補足】

以下は最初に私が書いていたプラグインに変更する前のコードです。こちらのコード(a タグ)ではエラーは出ません。

a href="http://www.facebook.com/share.php?u=https://bootcamp.fjord.jp/articles/#{@article.id}" Facebook

#6407 (comment)
↑こちらの参考記事に記載のコードを使っています。

<a href="http://www.facebook.com/share.php?u={URL}" rel="nofollow noopener" target="_blank">リンクテキスト</a>

@komagata
Copy link
Member

@88-99 表示されるメッセージがどういう意味で、表示されていても問題ないとしたらなぜ問題ないのか調べてみてください。

実際のお仕事でも必ず必要になるはずです〜。

@88-99
Copy link
Contributor

88-99 commented Dec 17, 2023

@komagata

表示されるメッセージがどういう意味で、表示されていても問題ないとしたらなぜ問題ないのか調べてみてください。

ありがとうございます。理由を自分なりに考えてみました。
現在は、コードを修正し発生しているエラーは一つです。

Error with Permissions-Policy header: Unrecognized feature: 'ambient-light-sensor'.

この警告は、「Permissions-Policy header でambient-light-sensorという機能が認識されていません。」という意味で、この機能を利用するには、Permissions API により 'ambient-light-sensor' デバイスセンサーを使用する許可を与える必要があり、それをしていないので認識されないという警告が出ているのではと推測しました。

またMDNには、「Experimental: これは実験的な機能です。」と「この機能はサーバーで設定された Permissions Policy でブロックされる可能性があります」との記載もあり、以下3つの点からも無視して問題はないと判断します。

  • 下に記載したこの機能の内容を考えても使う必要性を感じないこと
  • シェアボタンを押したときの挙動が意図したものであること
  • このFacebookのプラグインが実装されている他サイトにおいても同じ警告が発生してそのままにされていること

ambient-light-sensorとは、現在の文書が、端末の周囲の環境における光量についての情報を、 AmbientLightSensor インターフェイスを通じて収集することを許可するかどうかを制御します。AmbientLightSensor インターフェイスは、現在の光レベル、すなわちホストデバイス周辺の環境光の照度を返します。

AmbientLightSensor
https://developer.mozilla.org/ja/docs/Web/API/AmbientLightSensor

@komagata
Copy link
Member

@88-99 なるほどですね〜!では無視していいと思います〜!

@88-99
Copy link
Contributor

88-99 commented Dec 18, 2023

@komagata
ご確認ありがとうございます!
かしこまりました!

@88-99 88-99 moved this from 作業中 to レビュー中 in 開発 Feb 3, 2024
Copy link

このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。

@github-actions github-actions bot added the stale label Feb 17, 2024
@88-99 88-99 removed the stale label Feb 17, 2024
@88-99 88-99 moved this from レビュー中 to 完成 in 開発 Feb 21, 2024
@88-99
Copy link
Contributor

88-99 commented Feb 22, 2024

本番環境で確認しました。closeします。

@88-99 88-99 closed this as completed Feb 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
開発
  
完成
Archived in project
Development

No branches or pull requests

4 participants