主要 SNS(Twitter, Facebook, LINE)への共有リンクの設定方法
はじめに
2019年11月時点で主要な SNS である(と個人的に思う) Twitter, Facebook, LINE への共有リンクの設定方法についてまとめた。
TL;DR
- Twitter:
https://twitter.com/intent/tweet?text=<text>
- 他オプション:
via
,related
,url
,hashtags
- 他オプション:
- Facebook:
https://www.facebook.com/share.php?u=<url>
- LINE:
https://line.me/R/msg/text/?<text>
目次
詳細
Twitter には 2種類のシェア用 URL がある。
https://twitter.com/intent/tweet
https://twitter.com/share
2 の URL を使った場合を Developer tools で調べたところ、(http://twitter.com/share
→) https://twitter.com/share
→ https://twitter.com/intent/tweet
とリダイレクトされていたので、1 の https://twitter.com/intent/tweet
を使うのが良い。
※利用者からすると結果は同じだが、Twitter 社への負荷を考えると最終的に使われるページを使う方が好ましいだろう。
使用できるパラメータは Web Intent — Twitter Developers を見ると以下。
text
: ツイート本文url
: リンクhashtags
: ハッシュタグ(カンマ(,
) 区切り)via
: アカウント名related
: アカウント名in-reply-to
: リプライ先のtweet_id
いくつかのページで以下パラメータが紹介されてたり、実際に使われてたりしているのを見たが、廃止されたっぽい。
count
original_referer
パラメータの補足
text
, url
, hashtags
は URL Encode しておいた方が良いだろう。
text
%0A
を入れると改行できる。
https://twitter.com/intent/tweet?text=hoge%0Afuga だと、ツイート内容は以下のようになる。
1 | hoge |
JavaScript だと encodeURIComponent
, Ruby だと sporkmonger/addressable の Addressable::URI.encode
を使うと良い。
参考
↑を見た感じ、Node.js なら querystring
を使うのが良さげ。
1 | const querystring = require('querystring'); |
url
url
は改行せずに半角スペース付きで挿入されるので、細かい見た目を気にするなら text
の方に含める方が良いだろう。
以下に実際のリンクも載せるので、試しにアクセスしてみて欲しい。
https://twitter.com/intent/tweet?text=hoge&url=https://example.com だと、ツイート内容は以下のようになる。
1 | hoge https://example.com |
text
の箇所で書いた %0A
と組み合わせて https://twitter.com/intent/tweet?text=hoge%0Ahttps://example.com だと、ツイート内容は以下のようになる。
1 | hoge |
hashtags
hashtags
には #
は含めずにカンマ(,
)区切りでタグを指定する。
https://twitter.com/intent/tweet?text=hoge&hashtags=tag1,タグ2,付箋3 だと、ツイート内容は以下のようになる。
1 | hoge #tag1 #タグ2 #付箋3 |
via
via
は指定すると @account さんから
が追加される。
https://twitter.com/intent/tweet?text=hoge&via=TwitterJP だと、ツイート内容は以下のようになる。
1 | hoge @TwitterJPさんから |
related
related
は指定すると、ツイート後の画面にフォロー有無を聞かれるページが表示される。
https://twitter.com/intent/tweet?text=hoge&related=TwitterJP だと、ツイート内容は以下のようになる。
1 | hoge |
ツイート後の画面は以下のようになる。
その他: アプリを開く
直接アプリを開かせたい場合、(iOS だと) twitter://post?message=<text>
でいけるっぽい。
ただし、未インストール時の考慮なども必要なので、「絶対にアプリじゃないとダメだ」という要件でも無い限りはシンプルにリンクで良いと思う。
Facebook の共有リンクは下記、URL のみが指定可能。
https://www.facebook.com/share.php?u=<url>
https://www.facebook.com/sharer/sharer.php?u=<url>
このページを指定する場合のリンクは下記。
https://www.facebook.com/share.php?u=https://r17n.page
u
に http://localhost
などの到達不可能な URL を指定するとエラーになる。
https://www.facebook.com/share.php?u=http://localhost
以前は t=<text>
も使えたっぽいけど、今は使えない模様。
LINE
LINE の共有リンクは下記
https://line.me/R/msg/text/?<text>
このページを指定する場合のリンクは下記。
https://line.me/R/msg/text/?https://r17n.page
まとめ
- Twitter:
https://twitter.com/intent/tweet?text=<text>
- 他オプション:
via
,related
,url
,hashtags
- 他オプション:
- Facebook:
https://www.facebook.com/share.php?u=<url>
- LINE:
https://line.me/R/msg/text/?<text>
参考文献
共有リンク関連
- Web Intent — Twitter Developers
- Guides — Twitter Developers
- twitterのツイートボタンを作るためのリンクshareとintent/tweet - Qiita
- [Twitter] Tweet Web Intentを使ったツイートボタンの作り方・パラメータ一覧|IKU-LOG[イクログ]
- 今の時代必ず知っておくべき!!Twitterツイートボタンの設置・実装方法まとめ - Yohei Isokawa
- シェアボタン - ソーシャルプラグイン - Facebook
- SNSシェア周りの仕様整理2016 - Qiita
- WebサイトにSNSシェアボタンを設置&効果測定する方法のまとめ - Qiita
- ソーシャルボタンまとめ - Qiita
- 各Webサービスにおける共有リンクまとめ - Qiita
- Facebook・Twitter・LINE・Pocket・はてブの公式シェアボタンリンクまとめ - Qiita
- SNS(Twitter/Facebook/LINE)シェアボタンを超簡単に設置する方法 - Qiita
スマホアプリ起動関連
ちゃんと読んでないのもあるけど、備忘のために残す。
- 【2019】Twitter公式Appのスキーム一覧 │ えぐぷと!
- URLスキームからのスマフォアプリ起動のフォールバック ::ハブろぐ
- モバイルブラウザからアプリを開くには - console.lealog();
- URI SchemeでTwitter投稿をしてみる - Qiita
- カスタムURLスキームでアプリを起動させ、アプリが無ければストアに遷移させる - Qiita
- node-deeplink - npm
- 真面目にDeep Link対応したい話 - Qiita
- ディープリンク(deep link)とは | ディープリンク.jp
- スマホ時代の当たり前!ディープリンクの仕組みとSNS…|Udemy メディア
- DeepLinkDispatchで手軽にAndroidのディープリンクを実装する - Qiita
その他
- sporkmonger/addressable: Addressable is an alternative implementation to the URI implementation that is part of Ruby’s standard library. It is flexible, offers heuristic parsing, and additionally provides extensive support for IRIs and URI templates.
- RubyのCGI.escapeとURI.encodeについて | 酒と涙とRubyとRailsと
- encodeURIComponentが世界基準だと誤解してた話 - Qiita
- Query String | Node.js v13.7.0 Documentation
関連記事
- jQuery Select2 で、初期値の設定と選択状態のクリア
- Laravel で現在の URL 取得方法まとめ
- JavaScript で画像をローカルにダウンロード
- JavaScript で複数画像を zip に圧縮してローカルにダウンロード
- HTML img タグで画像が 404 エラーのときに代替画像を表示する方法
- mailto リンクで 宛先/CC/BCC/件名/本文 を指定 (JavaScript サンプルあり)
- JavaScript で URL のクエリパラメータを操作する方法
- axios で添付ファイルありのリクエスト(multipart/form-data の POST)