1

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 を実行しているようで、エラーが発生します。

4

0 に答える 0