ユーザーがFacebookの共有ボタンを使用してページを共有するときにクロールを検出しようとしています。しかし、ライブログを見ると、ボタンをクリックしても何もコントローラに当たっていないようです。RailsがFacebookの共有と通常のページビューを検出しています
アイデアはuser-agent
を検出して、ユーザーが実際にサイトにアクセスしたときとは異なるコンテンツを共有するようにしました。
def show
Rails::logger.debug "********************************"
Rails::logger.debug "#{self.class.name} - params: #{params.inspect}"
Rails::logger.debug "#{self.class.name} - request.headers['HTTP_USER_AGENT']: #{request.headers['HTTP_USER_AGENT'].inspect}"
Rails::logger.debug "********************************"
render "pages/fb_test", layout: false
end
共有ボタン
.fb-share-button{:"data-href" => "http://myapp.herokuapp.com/pages/1", :"data-layout" => "button", :"data-size" => "small", :"data-mobile-iframe" => false}
%a.fb-xfbml-parse-ignore{target: "_blank", href: "https://www.facebook.com/sharer/sharer.php?u=http://myapp.herokuapp.com/pages/1"}
Share
私は共有ボタンをクリックすると、Facebookが提供されたURLにヒットすることを引き受ける
、クロール:私のコントローラで
私には、以下の持っています関連するコンテンツを返します。しかし、heroku logs --tail
を使用すると、共有ボタンをクリックしても何のアクティビティも表示されませんが、コンテンツはFacebookの共有ポップアップで正しく表示されます。
これはRack
レベルで検出する必要がありますか?