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

プラグインを利用して、X、Facebook、はてなブックマークのシェアボタンを実装 #7153

Merged
merged 17 commits into from
Feb 20, 2024

Conversation

88-99
Copy link

@88-99 88-99 commented Dec 17, 2023

Issue

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

概要

外部向けのブログページの上部と下部に、X、Facebook、はてなブックマークのシェアボタンを設置する。

変更確認方法

  1. feature/add-share-buttons-on-blog-page-for-externalをローカルに取り込む
  2. bootcamp を起動する foreman start -f Procfile.dev
  3. ブログ記事のどれかにアクセスする
    フッターまで下にスクロール → ブログ → 任意のブログ記事
  4. 画面上部と下部に設置した各シェアボタンを押して挙動を確認する
    確認には予め、X、Facebook、はてなブックマークへログインをお願いいたします。

変更前

上部
1-1_development__VirtualBoxでLinuxを使おう___FJORD_BOOT_CAMP(フィヨルドブートキャンプ)
下部
1-2_development__VirtualBoxでLinuxを使おう___FJORD_BOOT_CAMP(フィヨルドブートキャンプ)

変更後

上部
2-1_development__VirtualBoxでLinuxを使おう___FJORD_BOOT_CAMP(フィヨルドブートキャンプ)
下部
2-2_development__VirtualBoxでLinuxを使おう___FJORD_BOOT_CAMP(フィヨルドブートキャンプ)

ボタンを押したときの挙動

X

別タブでXが開き、その中にブログ記事のURLと#fjordbootcampが記載されたポスト用の小ウィンドウが開く。

Facebook

共有するブログ記事のサムネイルが記載されたポスト用の小ウィンドウが開く。
開発環境のブログ記事は実在しないため、サムネイルには「ご指定のページは見つかりません」と表示される。
app/views/articles/_share_button_facebook.html.erb<%= article %>を実在する95に書き換えると、サムネイルが実際の画像に反映される。

はてなブックマーク

共有するブログ記事がブックマークされていない場合

開発環境のブログ記事は実在しないため、「このページはまだブックマークされていません」と表示される。

Image from Gyazo

共有するブログ記事がブックマークされている場合

app/views/articles/_share_button_hatena.html.erb<%= article %>を実在する95に書き換えると、以下のように反映される。

Image from Gyazo

使用プラグイン

X

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

Facebook

https://developers.facebook.com/docs/plugins/share-button?locale=ja_JP
シェアボタン_-_ソーシャルプラグイン

はてなブックマーク

https://b.hatena.ne.jp/guide/bbutton
はてなブックマークボタンの作成・設置について

@88-99
Copy link
Author

88-99 commented Dec 18, 2023

@machida
デザインをお願いできますでしょうか?

@machida
Copy link
Member

machida commented Dec 27, 2023

@88-99 おまたせしました!!着手しますー💪

@machida machida force-pushed the feature/add-share-buttons-on-blog-page-for-external branch from 9c80e89 to 31846d4 Compare January 5, 2024 07:27
@machida
Copy link
Member

machida commented Jan 5, 2024

@88-99 おまたせしました!デザイン入れました。最新のmainをrebaseしたので、

git pull --rebase origin feature/add-share-buttons-on-blog-page-for-external をお願いします。

@machida machida removed their assignment Jan 5, 2024
@88-99
Copy link
Author

88-99 commented Jan 6, 2024

@machida

ありがとうございます!

@88-99 88-99 force-pushed the feature/add-share-buttons-on-blog-page-for-external branch from 31846d4 to 3742252 Compare January 13, 2024 13:30
@88-99 88-99 requested review from goruchanchan and removed request for goruchanchan January 18, 2024 14:29
@goruchanchan
Copy link
Contributor

@88-99
お疲れ様です!レビュー依頼ありがとうございます!1週間以内に確認いたします🙇‍♂️

@88-99
Copy link
Author

88-99 commented Jan 19, 2024

@goruchanchan

お疲れ様です!レビュー依頼ありがとうございます!1週間以内に確認いたします🙇‍♂️

お疲れ様です。
こちらのレビューのお願いは、間違いでした。
コメントを残しておけば良かったのですが、お騒がせしてすみません🙇‍♂️

@88-99 88-99 force-pushed the feature/add-share-buttons-on-blog-page-for-external branch from 4f6b365 to 1f8ad96 Compare January 30, 2024 10:06
@88-99 88-99 requested a review from kyokucho1989 February 1, 2024 03:20
@88-99
Copy link
Author

88-99 commented Feb 1, 2024

@kyokucho1989

お疲れ様です。
急ぎませんので、お手隙の時にこちらのレビューをお願いできませんでしょうか?🙏

@kyokucho1989
Copy link
Contributor

@88-99
了解しました!
来週の水曜までかかるかと思います。

今日は取り急ぎ、家に帰ってテストしてみます

Copy link
Contributor

@kyokucho1989 kyokucho1989 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@88-99
レビューしました。コメントつけています。

X, Facebook , はてなのいづれもシェア機能が使えることが確認できました。
ただ、下側のシェアボタンは機能しませんでした。確認してみてください

Comment on lines 376 to 390
test 'share button Facebook' do
visit "/articles/#{@article.id}"

within find('.fb-share-button', match: :first) do
within_frame do
assert_selector "a[
href='/sharer/sharer.php?kid_directed_site=0&sdk=joey&" \
"u=https%3A%2F%2Fbootcamp.fjord.jp%2Farticles%2F#{@article.id}&display=popup&" \
"ref=plugin&src=share_button'
]"
end
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ここのテストが失敗してしまいます。

Failure:
ArticlesTest#test_share_button_Facebook [/Users/kondoukou/bootcamp/test/system/articles_test.rb:381]:
expected to find css "a[\n                            href='/sharer/sharer.php?kid_directed_site=0&sdk=joey&u=https%3A%2F%2Fbootcamp.fjord.jp%2Farticles%2F655299028&display=popup&ref=plugin&src=share_button'\n                          ]" but there were no matches

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

自分のPCでは通りました。
昨日以下のテストコマンドを実行すると最初は落ちたのですが、その後は通り、今日は一発で通りました。
Facebookのシェアボタンだけ表示される速度が見るからに遅いので、それも関係しているのでしょうか。

$ bin/rails test test/system/articles_test.rb
Running via Spring preloader in process 53982
Run options: --seed 11339

# Running:

..................................
[Minitest::CI] Generating test report in JUnit XML format...


Finished in 21.243046s, 1.6005 runs/s, 3.8130 assertions/s.
34 runs, 81 assertions, 0 failures, 0 errors, 0 skips

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

自分のPCで何回かテストしました。3回やって2回パスするくらいの割合ですね。
表示速度の問題もあるのでしょうが、解消の仕方がわかりません...

1日調べさせてください。

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@88-99
このテストだけ待ち時間を増やすなどの対策ができるかもしれません。
が、やり方がわからないため質問するなどしてみてください 🙏

https://speakerdeck.com/mstshiwasaki/bu-an-ding-tesutowosheng-michu-sucapybarawodiao-jiao-suru?slide=24

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ご確認と参考記事ありがとうございます🙇‍♂️
テストが通らなかったときに、待ち時間について調べたこともあったのですが、test_helper.rbの設定でCapybara.default_max_wait_time = 10が記述されているので、テスト全体としてその設定にはなっているのだと思っていました。

確認してみます。

Copy link
Author

@88-99 88-99 Feb 7, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kyokucho1989
URLが長かったので必要そうな部分に限定してチェックするよう修正してみました。私の環境では落ちることはなくなりました。
assert_selector "a[href*='u=https%3A%2F%2Fbootcamp.fjord.jp%2Farticles%2F#{@article.id}']"

@komagata
テストが通りにくい(下記修正前)ということでご指摘いただいています。
スレッドの先頭:#7153 (comment)

次の修正を加えました。URLが長かったので不要と思われる部分を削除して、シェアするブログ記事のURLが存在するかをチェックしています。何か問題点などありましたら、ご意見をいただけないでしょうか?
333bdaa

Copy link
Contributor

@kyokucho1989 kyokucho1989 Feb 7, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@88-99

通るようになりました!

PRをDraft状態からReady for Reviewに変更してください。Approveします。

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kyokucho1989

ご確認いただき、ありがとうございます!!
marked this pull request as ready for review になりました。
お願いいたします🙏

@@ -0,0 +1,53 @@
.share-buttons
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

スマホからだと表示が崩れてしまいます。
どこをどう修正すればいいのかわからないのですが...
どの環境からのデザインまで想定しているのか、@machidaさんに確認してみてくださいー

PC

スクリーンショット 2024-02-01 19 47 18

スマホ

スクリーンショット 2024-02-01 19 47 08

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

スマホのご確認ありがとうございます。

Copy link
Author

@88-99 88-99 Feb 2, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

スマホからだと表示が崩れてしまいます。
どこをどう修正すればいいのかわからないのですが...
どの環境からのデザインまで想定しているのか、@machidaさんに確認してみてくださいー

@kyokucho1989
私の方でもスマホで確認してみましたが、全体的にロードが不十分できちんと確認はできませんでした。

@machida
スマホで確認すると、シェアボタンの大きさや間隔が違うというご指摘ですが、いかがでしょうか?

【スマホのスクショ】
Screenshot_20240202-225914_Chrome_jpg

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kyokucho1989

私は以下を参考にして確認したのですが、kyokucho1989さんはどのような方法で確認されましたか?
https://qiita.com/mako5656/items/411be80fff4600f241c3

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@88-99
おはようございます。
私はChromeのデベロッパーツールで確認しました。

赤枠のボタンを押すとスマホで見た場合で表示されます。
スクリーンショット 2024-02-03 8 42 24

Copy link
Contributor

@kyokucho1989 kyokucho1989 Feb 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@88-99
そうなんですか。であれば、私の環境がなにか違うのかもしれませんね…

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ご確認ありがとうございます🙏
私の確認不足もありましたので、ご指摘いただいて勉強になりました。
町田さんにもご確認いただけると思いますので、ご意見をお聞きしたいと思います。

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@88-99 @kyokucho1989 なんか僕の環境だと小さく表示されるバージョンが再現できないんですよね。。。シミュレーターを使うなど、他の方法もためしてみますー

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@88-99 @kyokucho1989
実機で確認してサイズが小さくなる現象は起きなかったので、これでリリースしようと思います。
もし、本番で小さくなる現象が起きたら急ぎで対応します。


実機確認方法

192.168.0.112 の場合。

/bootcamp/config/environments/development.rb

config.action_controller.asset_hostRails.application.routes.default_url_options[:host] の設定を変更。
以下のようにする。

config.action_controller.asset_host = "http://192.168.0.112:3000/"
Rails.application.routes.default_url_options[:host] = '192.168.0.112:3000'

設定を変更した上で、

$bundle exec rails server -b 192.168.0.112

で立ち上げる。

同じWiFiに繋がってるスマホで、http://192.168.0.112:3000/ にアクセス。SafariではこのURLではシェアボタンが表示されないので、Chromeで確認。

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@machida

お忙しいところご確認いただきありがとうございました🙏
私の方でも教えていただいた方法ですと、スマホのchromeで確認できました。
問題のある現象は見受けられませんでした。

実機で確認してサイズが小さくなる現象は起きなかったので、これでリリースしようと思います。
もし、本番で小さくなる現象が起きたら急ぎで対応します。

かしまりました。

- if @article.thumbnail.attached?
= image_tag @article.thumbnail_url, class: 'article__image'
.article__body
.js-markdown-view.a-long-text.is-md
= @article.body
= render 'share_buttons', article: @article
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

下側のシェアボタンがうまく機能していません。

article: @article.id が正しいかと思います。

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

すみません、抜けていました。修正しました。


within_frame(find('.hatena-bookmark-button-frame', match: :first)) do
assert_selector "a[href='https://b.hatena.ne.jp/entry/s/bootcamp.fjord.jp/articles/#{@article.id}#bbutton']"
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

こちらはなぜ#bbutton となるのでしょうか。#button ではなく。

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

_development__VirtualBoxでLinuxを使おう___FJORD_BOOT_CAMP(フィヨルドブートキャンプ)

開発者ツールのElementsタブで実際の値を確認すると#bbuttonになっているため、そちらを利用しております。

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

了解です。タイポではないようなので、修正はいらないかと思います

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございます😃

@88-99
Copy link
Author

88-99 commented Feb 1, 2024

@kyokucho1989
早々にレビューいただき誠にありがとうございます。
本日改めてテストを通したところ落ちました。ご指摘いただいた内容と合わせて修正でき次第コメントさせていただきます🙇‍♂️

@kyokucho1989
Copy link
Contributor

@88-99
こんにちは。もろもろのコメント返信しました。テストが通る方法については私も少し調べてみます。
明日連絡します。

@kyokucho1989
Copy link
Contributor

@88-99
遅くなりました…!! コメントしました。スレッドに追記しています。

@88-99 88-99 marked this pull request as ready for review February 8, 2024 13:32
@kyokucho1989
Copy link
Contributor

@88-99
確認しました。オッケーです。
Komagataさんにレビューをお願いしてください

@88-99
Copy link
Author

88-99 commented Feb 9, 2024

@kyokucho1989
ご確認いただきまして、ありがとうございました!

@komagata

承認をいただきましたので、レビューをお願いできますでしょうか?

Copy link
Contributor

@kyokucho1989 kyokucho1989 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approveしてませんでした... Approveします。

@88-99
Copy link
Author

88-99 commented Feb 10, 2024

@komagata

承認をいただけましたので、レビューをお願いいたします🙏

Copy link
Member

@komagata komagata left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@88-99 コンフリクトの解消をお願いします〜

@88-99 88-99 force-pushed the feature/add-share-buttons-on-blog-page-for-external branch from b3e7848 to 901571f Compare February 18, 2024 06:59
@88-99
Copy link
Author

88-99 commented Feb 18, 2024

@komagata

コンフリクトの解消をお願いします〜

解消しました。ご確認お願いいたします。

Copy link
Member

@komagata komagata left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

確認させて頂きました。OKです〜🙆‍♂️

@komagata komagata merged commit 4a622cd into main Feb 20, 2024
2 checks passed
@komagata komagata deleted the feature/add-share-buttons-on-blog-page-for-external branch February 20, 2024 06:29
@github-actions github-actions bot mentioned this pull request Feb 20, 2024
19 tasks
@88-99
Copy link
Author

88-99 commented Feb 20, 2024

@komagata
ありがとうございます!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants