2

私は最近、自分の Web アプリで Facebook Open Graph を有効にしました (あちこちであれこれ読んだところです)。これで、ユーザーが何かを投稿したときに、コントローラーでのページ読み込みの一部として、リクエストを Facebook に投稿します。問題は、次のエラーが表示されることです。

HTTP 500: 応答本文: {"error":{"type":"Exception","message":"URL からデータを取得できませんでした。"}}

私の最初の考えは、ページをロードするためのオープン リクエストが OG 情報の FB スクレイピングをブロックしていることです。

これはありそうですか?もしそうなら、それを回避する最善の方法は何ですか?

4

1 に答える 1

3

これが発生する理由: 今日も同じ問題が発生しました。これは、Koala スクリプト (コアラを使用していると仮定します。コアラを使用していない場合は、素晴らしいので試してみてください) が、URL がアップする前に Facebook にリクエストを送信するためです。つまり、Facebook が投稿を登録すると、メタ タグを取得するために指定した URL に到達します。残念ながら、ページ自体はまだ読み込まれておらず、500 エラーが発生しています。

解決方法: delayed_job gemを使用して、ページが読み込まれる前に post 呼び出しが発生しないようにします。これにより、facebook がメタタグを正しくスクレイピングできるようになります。

例えば:

def post_to_facebook([ACCESS_TOKEN])
  graph = Koala::Facebook::API.new([ACCESS TOKEN])
  graph.put_connections("me", "[APP NAMESPACE]:[ACTION]", :[OBJECT TYPE] => [OBJECT_URL])
end
handle_asynchronously :post_to_facebook
于 2012-07-19T22:42:34.450 に答える