Contents
| 項目 | sharer.php | Share Dialog |
|---|---|---|
| 利用のハードル | アプリ ID 不要、URL のみで完結 | アプリ ID が必須(Facebook アプリを作成する必要あり) |
| 権限・App Review | 必要なし | 基本的に不要。public_profile や email といったユーザー情報取得は行わないため、App Review は求められません(※追加のログイン機能や他 API を呼び出す場合を除く)。 |
| カスタマイズ性 | タイトル・画像は OG タグに依存。quote / hashtag のみ利用可。 |
quote、hashtag、redirect_uri など多彩なオプションが使用可能。 |
| エラーハンドリング | ブラウザのポップアップで完結し、失敗時の通知手段が乏しい。 | JavaScript SDK (FB.ui) を併用すれば成功/失敗をコールバックで取得できる。 |
まとめ
- 手軽さを優先するならsharer.phpが最適。
- UI カスタマイズやシェア後リダイレクト、ユーザー操作の把握が必要な場合は Share Dialog を選択してください。
2‑1. 必須パラメータ
| パラメータ | 内容 | 備考 |
|---|---|---|
app_id |
Facebook アプリの App ID。 | App Dashboard → Settings > Basic に表示。 |
href |
シェア対象ページの URL(必ず URL‑エンコード)。 | 例: https%3A%2F%2Fexample.com%2Farticle.html |
2‑2. 任意パラメータ(代表)
| パラメータ | 内容 |
|---|---|
quote |
シェア画面に表示される 引用文。ユーザーは編集可能。 |
hashtag |
自動付与したいハッシュタグ(#MyCampaign のように # を含める)。 |
redirect_uri |
シェア完了後に遷移させたい HTTPS URL。省略すると現在ページに戻ります。 |
2‑3. 正しいエンコード例(HTML)
|
1 2 3 4 5 6 7 8 9 |
<a href="https://www.facebook.com/dialog/share? app_id=123456789012345&amp; href=https%3A%2F%2Fexample.com%2Fproduct.html&amp; quote=%E6%9C%80%E8%BF%91%E3%81%AE%E5%85%B7%E4%BD%93%E3%82%92%E5%85%A8%E9%96%93%E3%81%97%E3%81%A6&amp; redirect_uri=https%3A%2F%2Fexample.com%2Fthanks" target="_blank" rel="noopener"> 商品ページをシェア </a> |
- ポイント
HTML 属性内では&を&にエスケープ してください。
改行やインデントは URL の一部にならないよう、1 行にまとめるか&で区切ります。
3. Open Graph (OG) タグでシェアプレビューを制御
Facebook はページの メタ情報(タイトル・説明・画像)を OG タグから取得します。正しく設定すれば、sharer.php と Share Dialog の両方で同一のプレビューが表示されます。
3‑1. 必須・推奨タグ
| タグ | 目的 | 推奨文字数 / サイズ |
|---|---|---|
og:title |
カードの見出し | ≤ 60 文字(約 80 バイト) |
og:description |
説明文 | ≤ 110 文字(約 150 バイト) |
og:image |
サムネイル画像 URL | 推奨 1200×630 px、ファイルサイズ ≤ 5 MB、HTTPS |
og:url |
正規化されたページ URL | - |
og:type |
コンテンツ種別(例: website, article) |
- |
fb:app_id |
アプリ ID(任意) | - |
3‑2. 実装サンプル
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<head> <meta charset="utf-8"> <title>Facebook シェアリンク完全ガイド</title> <!-- Open Graph --> <meta property="og:title" content="Facebookシェアリンク完全ガイド"> <meta property="og:description" content="sharer.php と Share Dialog の違いや、quote パラメータの正しい使い方を徹底解説します。"> <meta property="og:image" content="https://example.com/assets/og-image.jpg"> <meta property="og:url" content="https://example.com/facebook-share-guide.html"> <meta property="og:type" content="article"> <meta property="fb:app_id" content="123456789012345"> <!-- Twitter Card(任意) --> <meta name="twitter:card" content="summary_large_image"> </head> |
3‑3. デバッグ手順
- Sharing Debugger に URL を貼り付け → 「Debug」
- 「Scrape Again」を実行して最新の OG タグを取得。
- エラーが出たら指摘されたタグ・画像サイズを修正し、再度デバッグ。
ヒント
画像は HTTPS で配信し、キャッシュが残りやすいので変更後は必ず「Scrape Again」してください。
4. quote パラメータの実態と制限
| 項目 | 内容 |
|---|---|
| 使用可能な Dialog | Share Dialog(dialog/share)のみ。Feed Dialog では利用不可。 |
| 文字数上限 | 125 文字(約 250 バイト)。Facebook の公式ドキュメントに記載されています。 ※UTF‑8 でマルチバイト文字が混在する場合はバイト数で判定されるため、実装時は 255 バイト以下 を安全域として確保すると安心です。 |
| 改行・HTML | 改行 (\n) や HTML タグは除去され、プレーンテキストのみが表示されます。 |
| 禁止表現 | 虚偽情報、過度な広告文、スパム的表現は Facebook のコミュニティ基準に違反します。 |
4‑1. 正しいエンコード例(JavaScript)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
function buildShareUrl(pageUrl, quoteText) { const params = new URLSearchParams({ app_id: '123456789012345', href: pageUrl, quote: quoteText // 自動的に UTF-8 エンコードされる }); return `https://www.facebook.com/dialog/share?${params.toString()}`; } // 使用例 const shareLink = buildShareUrl( 'https://example.com/product.html', '最新プロダクトが登場!ぜひご覧ください。' ); document.getElementById('fb-share').href = shareLink; |
4‑2. UI/UX のベストプラクティス
- 自然な文体で 100〜120文字程度に収めると、切れ目なく表示されます。
- ユーザーが 編集しやすいように、句読点や改行は控えめに。
- 広告的表現は避け、あくまで「補足情報」や「キャッチコピー」の位置付けで提供する。
5. メッセージ本文の事前入力は不可 ― ポリシー解説
Facebook の Platform Policy(第 2 条)では次のように明記されています。
「開発者はユーザーが投稿するテキストをプログラムから事前設定できません。」
(Share Dialog リファレンス)
なぜ制限されているのか
| 理由 | 説明 |
|---|---|
| ユーザー体験保護 | 投稿内容が自動生成されるとスパムや誤情報が拡散しやすくなる。 |
| 法的リスク回避 | 開発者側が不適切な文言を強制できないようにすることで、プラットフォーム全体の責任範囲を明確化。 |
代替手段
- OG タグでページ自体の見た目・説明を最適化。
- quote パラメータで ユーザーが編集可能な補足テキスト を提供。
6. publish_actions の廃止と現在取得できる権限
| 項目 | 内容 |
|---|---|
| 廃止時期 | 2018 年 8 月に正式に非推奨化、同年 10 月に完全削除。 |
| 影響 | アプリがユーザーの代わりに投稿する権限 (publish_actions) は取得できなくなった。 |
| 現在利用可能なシェア系権限 | 基本的には 権限不要(Share Dialog/Feed Dialog)。 ※ public_profile や email が必要になるケースは、別途 Facebook Login を実装しユーザー情報を取得したい場合のみです。App Review はそれらの権限が Advanced Access に昇格する際に求められます。 |
要点
シェア機能だけなら 何も権限は不要。ログインや個人情報取得を伴わないシナリオでは App Review の手続きを省くことができます。
7. 実装チェックリスト & デバッグフロー
7‑1. 前提条件
- Facebook アプリが作成済み(App ID が取得できている)
- OG タグがページに正しく埋め込まれている
7‑2. チェックリスト
| # | 項目 | 確認方法 |
|---|---|---|
| 1 | OG タグ が全て揃っているか(og:title, og:description, og:image, og:url) |
Sharing Debugger → 「Open Graph」タブで確認 |
| 2 | quote の文字数が 125 文字以内、バイト数が 255 バイト以下か |
JavaScript で new TextEncoder().encode(quote).length をチェック |
| 3 | Share Dialog 用 URL が正しくエンコードされているか | Chrome DevTools → Network タブでリクエスト URL を確認 |
| 4 | redirect_uri が HTTPS かつ Facebook アプリの「Valid OAuth Redirect URIs」に登録済みか |
App Dashboard → Settings > Advanced |
| 5 | モバイル / デスクトップ両方でプレビューが期待通り表示されるか | 実機(iOS/Android)と PC のブラウザでテスト |
| 6 | エラーハンドリングが実装されているか(FB.ui のコールバック) |
コンソールに response.error_message が出力されないことを確認 |
| 7 | 必要に応じて App Review が完了しているか(public_profile・email 取得が目的の場合のみ) |
App Dashboard → App Review のステータスチェック |
7‑3. デバッグフロー例(JS SDK 使用)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
function fbShare(pageUrl, quoteText) { FB.ui({ method: 'share', href: pageUrl, quote: quoteText }, function (response) { if (response && !response.error_message) { console.log('✅ シェア成功'); } else { const err = response?.error_message ?? '不明なエラー'; console.warn('⚠️ シェア失敗:', err); // OAuth エラーなら再ログインを促す if (err.includes('OAuthException')) { alert('Facebook にログインしてください。'); // 必要に応じて FB.login を呼び出す } } }); } |
8. まとめ(最終結論)
- シェア機能だけなら権限不要 ―
sharer.phpは手軽、カスタマイズが必要なときは Share Dialog を選択。 - OG タグの正確な設定 がプレビュー品質を左右する。必ず Debugger で検証しましょう。
quoteパラメータは 125 文字以内、バイト数 ≤ 255 バイト が安全基準です。ユーザーが自由に編集できる点を活かす設計を。- 事前入力された本文はポリシー違反 → OG タグ+
quoteの組み合わせで自然な誘導文を提供してください。 - App Review は権限取得が目的の場合のみ必要。シェアだけなら手続き不要です。
これらのポイントを順守すれば、Facebook シェアリンクは 安全かつ期待通りに動作 し、ユーザー体験とマーケティング効果の両立が実現できます。
本ガイドは執筆時点(2026 年)における公式ドキュメントを元に作成しています。Facebook のポリシーや API は随時更新されるため、導入前に最新情報をご確認ください。