Web Intentとは?
簡単に言えば、特定のURLを踏むと各SNSの投稿画面へ遷移し、投稿したいテキストやURLが自動入力される、という機能が実現できます。
(例)下のリンク先に移動するとTwitterのツイート画面になる
https://www.twitter.com/share?text=%E3%83%86%E3%82%B9%E3%83%88%E3%81%A0%E3%82%88%E3%80%9C&url=https%3A%2F%2Fqiita.com%2F
今回はSNSとしてTwitterとFacebookのふたつに関してまとめます
公式のDocsがあるので読みましょう
エンドポイント
https://twitter.com/intent/tweet
クエリ
詳細はTweet button - Tweet text componentsを参照してください
key | value |
---|---|
text | 本文 |
url | URLを共有するときに使います |
hashtags | "#"記号なしで","区切り |
via | twitterアカウント名を指定する |
サンプル
モバイルのネイティブアプリ
AndroidやiOSの場合、ネイティブのTwitterアプリがインストールされている端末でURLを開くと、アプリが自動で起動してくれます
他のエンドポイント
Twitterへ投稿するURLとして https://www.twitter.com/share
を紹介する記事が調べると結構見つかります。実際にアクセスしてみると確かに投稿画面が開き、クエリも同じように処理してくれます。 301リダイレクトも含めると、
https://twitter.com/intent/tweet
https://www.twitter.com/intent/tweet
https://twitter.com/share
https://www.twitter.com/share
あたりが使えるようです(執筆時点)。
主に二種類あるので分けます
アプリIDが必要
公式のDocsがあるので読みましょう
以下のMeta開発者ページで自身のFacebookアカウントを登録し、アプリIDを取得する必要があります
エンドポイント
https://www.facebook.com/dialog/share
クエリ
key | value |
---|---|
app_id | 登録したアプリID(必須) |
href | シェアするURL |
hashtag | "#"記号をつけてひとつのみ |
redirect_uri | シェアボタン押下した後にリダイレクトされるURL. 開発者ページで登録した自身のサイトでないとエラー |
サンプル
https://www.facebook.com/dialog/share?app_id=${your_app_id}&href=https%3A%2F%2Fqiita.com%2F&hashtag=%23Qiita
アプリID不要
太古から存在するエンドポイントのよう。ただ公式のDocsには記載がなく、一時期は非推奨になったものの利用するサイトの多さから復活したとか言われている(要出典)
エンドポイント
https://www.facebook.com/sharer/sharer.php
クエリ
key | value |
---|---|
app_id | 登録したアプリID(任意:シェアした後の表示が少し変わる) |
u | シェアするURL |
hashtag | "#"記号をつけてひとつのみ |
サンプル
https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fqiita.com%2F&hashtag=%23Qiita
モバイルのネイティブアプリ
Twitterとは異なり、Facebookのネイティブアプリがインストール済みでも自動では起動してくれません。各プラットフォーム専用のFacebook SDKを利用する必要があります