今更だけどfacebookのShare方法まとめ
とっても今更ですが、よく聞かれるのでfacebookのShare方法をまとめます。
facebookのShare方法には大きく分けると2種類あります。
1. sharer.phpを使う
http://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fgoogle.com
sharer.phpに「u」というパラメータでURLを渡せば、渡したURLのOGPを読み取ってShareを促すことができます。
この方法は、昔あったShareボタンのPluginのURLを抜き出したものなので、現在はShareボタンと同様に公式によるサポートはありません。
そのため、いきなりこの方法が使用できなくなる可能性もありますし、Share画面のレイアウトもきれいなものではありません。
いつの間にか、公式ドキュメントにsharer.phpが復活していました。https://developers.facebook.com/docs/reference/plugins/share-links/
ということで、現状(2013/07時点)は公式にサポートされているみたいです。Share画面のレイアウトも綺麗になっています。
2. feed dialogを使う
公式ドキュメントはこちら。
https://developers.facebook.com/docs/reference/dialogs/feed/
http://www.facebook.com/dialog/feed? app_id=458358780877780& link=http://developers.facebook.com/docs/reference/dialogs/& picture=http://fbrell.com/f8.jpg& name=Facebook%20Dialogs& caption=Reference%20Documentation& description=Using%20Dialogs%20to%20interact%20with%20users.& redirect_uri=https://mighty-lowlands-6381.herokuapp.com/
上記URLのリンクはこちらです。
feed dialogに対して、各OGPのパラメータを渡せば、その値でShareを促すことができます。
もちろん、すべてのOGPを渡さなくても、「link」パラメータで渡したURLにOGPが設定されていれば、そちらの値で補ってくれます。
OGPのパラメータ以外に、app_idとredirect_uriを渡さなければならず、redirect_uriはアプリの設定でされているドメイン以下でなければエラーになってしまいます。
OGPとShareの関係性
ShareはOGPの値によって形成されます。
2つの方法の違い
1の方法に比べて、2の方法で大きく違う点は「アプリ経由のShareになる」という点です。
2の方法は、パラメータでapp_idを渡している通り、Share画面にも、「○○(アプリ名)より」という表示がされています。
そのため、1の方法と違いfacebook appを作成しなければ2の方法は使用できません。
さらに、2の方法は、実際にShare画面でシェアを実行した先のページは、redirect_uriパラメータで渡されたURLに遷移されます。
1の方法の完了画面はfacebook側ですが、2の方法の完了画面はアプリ側で作成しなければいけません。
また、redirect_uriに遷移した際、facebookはパラメータに「post_id」というパラメータで、ユーザーが投稿したIDを渡してくれます。
redirect先でpost_idを使って投稿したページへのリンクを用意したり、いろいろ応用できると思います。
できないこと
どちらの方法も、Share画面のテキストエリアに文言を設定できることはできません。
(2の方法は昔できた記憶があるけど、できなくなってるような気がする)
まとめ
手っ取り早く済ませたい場合は1の方法。
しっかりと対応したい場合は2の方法。