Facebook Open Graph を使用して、ユーザーが他のユーザーをフォローしているというストーリーを伝えています。「trusts」というカスタム アクションを作成しました。
フォローしているユーザーに添付された URL が、サイト内のそのユーザーの URL になるようにします。つまり、myapp/users/64 です。
ただし、Open Graph を実装すると、URL をスクレイピングするとエラーが返されます。
その理由はもちろん、ユーザー ページがログイン プロトコルの背後にあり、スクレーパーがヒットしようとすると、ログイン ページにリダイレクトされるためです。
リダイレクトしないカスタム ページを作成しましたが、どうでしょうか。url 行 (以下を参照) により、Facebook はとにかく URL を試行するため、同じ問題に直面しています。
誰でも助けることができますか?
コードは次のとおりです。
オブジェクト:
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# kweekwegg: http://ogp.me/ns/fb/kweekwegg#"
> <meta property="fb:app_id" content="<%= Facebook::APP_ID %>" />
<meta property="og:type" content="kweekwegg:user" />
<meta property="og:url" content="<%= Facebook::SITE_URL%>users/<%= params[:facebook_user] %>" />
<meta property="og:title" content="Ange" />
<meta property="og:image" content="https://fbstatic-a.akamaihd.net/images/devsite/attachment_blank.png"/>
アクション:
function postTrust(user_id){
alert("<%= Facebook::SITE_URL %>user_scrape?facebook_user="+user_id);
FB.api(
'me/kweekwegg:trust',
'post',
{
user: "<%= Facebook::SITE_URL %>user_scrape?facebook_user="+user_id
//user: "http://samples.ogp.me/371640646273751"
},
function(response) {
alert(response.id);
}
);
}
そして最後に、識別を必要としないカスタム ページを作成し、postTrust 関数からユーザー ID をパラメーターとして取得するだけであることを思い出してください。それでも、FB はまだその URL に ping を実行しているようで、エラーが発生します。