2012-01-05 18 views
0

ワシントンポストソーシャルリーダと同様のFacebook Open Graph Appを作成しようとしています。私のウェブサイトwww.zeitlife.coで記事を読むと、その人のニュースフィードに発表されます。イギリス。アクションを公開できません

私は、アクションとオブジェクトを特定し、集計をテストするためのサンプルをいくつか作成して、Open Graphチュートリアルに従いました。 「タイムラインに追加」というボタンを作成しましたが、アクション(この場合は「読み取り」)を公開してそのアクションのIDを受け取ることができませんでした。

私が遭遇した1つの問題は、自分のOpen Graphメタタグが自分のタグの外に横たわっていることを示すデバッガツールでした。自己タグ付きのワードプレスサイトでは表示されません。しかし、Open Graphのメタタグをポストのメタ記述に置くことを可能にしたMeta SEO Packプラグインをインストールし、デバッガツールがこれを受け入れました。

これは、完全なOpen Graphコード(アクションとオブジェクト)のどの部分がメタ記述に入れるのかを複雑にしました。私はMetaの説明に "頭"の部分を配置しようとしましたが、機能していないボタンが表示されたメインポストの本体の本体部分を配置しようとしました。

おそらくあなたは私が?

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" 
xmlns:fb="https://www.facebook.com/2008/fbml"> 

<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# zeitlife: http://ogp.me/ns/fb/zeitlife#"> 
<meta property="fb:app_id"  content="308222752522151" /> 
<meta property="og:type"  content="zeitlife:article" /> 
<meta property="og:url"   content="http://www.zeitlife.co.uk/cabana-brazilian-food-that-breaks-the-mould" /> 
<meta property="og:title"  content="Cabana: Brazilian that Breaks the Mould" /> 
<meta property="og:description" content="Restaurant Review" /> 
<meta property="og:image"  content="http://www.zeitlife.co.uk/wp-content/uploads/2011/12/IMG_2435.jpg" /> 

</head> 
</html> 

コードをポスト本体に:

<html> 
    <script type="text/javascript"> function read() 
{FB.api('/me/zeitlife:article' + '?article=zeitlife.co.uk/cabana-brazilian-food-that-breaks-the-mould &access_token=AAAEYU7OsZC6cBAG0oRKggspR5xjr17Nlpntj2ylxOuN6o3Tztry2EKPWq3JO97yG9De1tlN1SEpqKarovmZAlNKLsEM3BdR4AZAIV6ARDEkQsVSMK3C','post', 
function(response) { 
var msg = 'Error occured'; 
if (!response || response.error) { 
if (response.error) { 
msg += "\n\nType: "+response.error.type+"\n\nMessage: "+response.error.message; 
} 
alert(msg); 
} 
else { 
alert('Post was successful! Action ID: ' + response.id); 
} 
}); 
} 
    </script> 

    <body> 
    <div id="fb-root"></div> 
    <script src="http://connect.facebook.net/en_US/all.js"></script> 
    <script> 
FB.init({ 
appId:'308222752522151', cookie:true, 
status:true, xfbml:true, oauth:true 
}); 
    </script> 
    <form> 
    <input type="button" value="Post To Your Timeline " onclick="read()" /> 
    </form> 
    </body> 
    </html> 
何か問題があるかどうかを確認

コードをメタ記述に使用されると、

あらかじめご協力いただきありがとうございます。非常に感謝しています!

答えて

0

まず、頭のHTMLコードを変更するためのWordPressプラグインを作成している可能性があります。フックを使用してwp_head関数にフックします。

第2に、カスタムの読み取り操作が作成されているようです。あなたがそれを承認しようとすると、Facebookはこれを拒否します。承認プロセスを簡単にするには、組み込みの読み取りアクションを使用する必要があります。

最後に、読み込み呼び出しを行うJS関数が正しくありません。コードは正常ですが、呼び出しに渡すデータは間違っています。関数内でアクセストークンを使用する必要はなく、記事の完全なURL(httpを含む)を使用する必要があります。

このような何かにあなたのコードを変更し

:あなたは、あなたのコード内で行われているよう:なく「記事zeitlife」:アクションは「読み取りzeitlife」であることを

setTimeout(function() { 
    FB.getLoginStatus(function(response) { 
     if (response.status === 'connected') { 
      // publish action to facebook 
      FB.api('/me/zeitlife:read', 'post', { article : 'http://zeitlife.co.uk/cabana-brazilian-food-that-breaks-the-mould/' }); 
     } else if (response.status === 'not_authorized') { 
      // the user is logged in to Facebook, 
      // but has not authenticated your app 
     } else { 
      // the user isn't logged in to Facebook. 
     } 
    }); 
}, 2000); 

は注意してください。 Articleはコールのパラメータです。 API Explorerツールを使用してAPI呼び出しをテストする必要があります。https://developers.facebook.com/tools/explorer/