http://www.bbc.co.uk/news/uk-19535236のように、BBC ニュース記事の上部に表示されるカスタム Facebook 共有ボタンを自分の Web サイトに追加したいと考えています。彼らはこれに Facebook フィード ダイアログを使用しています。リンクをクリックするとダイアログが表示され、現在のページの URL をタイムラインに投稿できます。
FB.ui メソッドは、デバイスに適したタイプのポップアップを自動的に作成するため、ダイアログを呼び出す最良の方法のようです。そのため、携帯電話を使用しているユーザーには、自分のデバイスに合ったポップアップが表示されます。このメソッドでは、コールバックを指定することもできるため、ユーザーがリンクを共有すると、共有しているページの共有数を増やすことができます。
http://developers.facebook.com/docs/reference/dialogs/feed/の最初の例に従おうとしています。
<div id='fb-root'></div>
<script src='http://connect.facebook.net/en_US/all.js'></script>
<p><a href="#" onclick='postToFeed(); return false;'>Post to Feed</a></p>
<p id='msg'></p>
<script>
FB.init({appId: "00000000000", status: true, cookie: true});
function postToFeed() {
// calling the API ...
var obj = {
method: 'feed',
link: 'http://example.com/',
picture: 'http://fbrell.com/f8.jpg',
name: 'Facebook Dialogs',
caption: 'Reference Documentation',
description: 'Using Dialogs to interact with users.'
};
function callback(response) {
document.getElementById('msg').innerHTML = "Post ID: " + response['post_id'];
if (response && response.post_id) {
alert('Post was published.');
} else {
alert('Post was not published.');
}
}
FB.ui(obj, callback);
}
</script>
(実際の app_id を 00000000000 に、サイト URL をhttp://example.com/に置き換えます)。しかし、リンクをクリックすると次のエラーが表示されます。
API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: redirect_uri is not owned by the application.
「リンク」パラメーターが Facebook アプリ設定のアプリの「サイト URL」と正確に一致している場合でも、これを取得します。
どうすればこれを機能させることができるか教えてもらえますか?Facebook アプリに対応する URL だけでなく、自分のサイトのどのページも共有できるようにしたいと考えています。