facebook分享按钮使用动态og标签进行测验

我有一个测验,根据用户获得的分数,会出现不同的图像,分数和描述。 我希望用户能够在他们的脸书上分享这个自定义内容和测验的url。

我最终做的是创建了一个重定向页面,其上有相应的开放图形标记。 open graph标签从我发送给它的url参数中获取它们的值。

的routes.rb

get "/facebook_sharer/index/:redirect_url/:image/:title/:description", to: "facebook_sharer#index", :redirect_url => /.*/, :image => /.*/, :title => /.*/, :description => /.*/ 

facebook_sharer_controller.rb

 class FacebookSharerController < ApplicationController def index if params[:redirect_url] @redirect_url = params[:redirect_url] end if params[:image] @image = params[:image] end if params[:title] @title = params[:title] end if params[:description] @description = params[:description] end render layout: false end end 

facebook_sharer / index.html.erb

     You are being redirected to your url   <meta property="og:title" content=""> <meta property="og:description" content="">  <meta property="og:image" content=""> <meta property="og:url" content="">   

You are being redirected to your url

window.location.href = '';

分享按钮:

 <div class="share_a fb-share-button pull-right" data-href="/facebook_sharer/index////" data-layout="button">

Facebook分享按钮按原样显示,但随后共享的页面标记值不正确。 我假设它已经搞砸了URI逃逸

 <meta property="og:url" content="/articles/quizzes/quiz-1-easy//assets/article_images">  

它应该是

 <meta property="og:url" content="/articles/quizzes/quiz-1-easy"> <meta property="og:image" content="/assets/article_images/image.png"> 

完整的html页面如下所示:

     You are being redirected to your url  <meta property="og:site_name" content=""/>     <meta property="og:url" content="/articles/quizzes/quiz-1-easy//assets/article_images">   

You are being redirected to your url

//

我尝试了这样一个按钮,但最终我在共享时遇到了这个错误。 我从stackoverflow和buzzfeed中获得灵感。

我最终收到此错误:

 This dialog has been passed a bad parameter. API Error Code: 100 API Error Description: Invalid parameter Error Message: redirect_uri is not properly formatted 

HTML:

 <a target="_window" onclick="return !window.open(this.href, 'Share on Facebook', 'width=640, height=536')" href="https://www.facebook.com/dialog/feed?app_id=&link=http%3A%2Fbaseurl.com%2Farticles%2Fquizzes%2Fquiz-1-easy&picture=http:/baseurl.com/assets/article_images/image.png&name=basename&caption=How%20Much%20Do%20You%20Actually%20Know%20K?&description=I%20got%20an%20A.%20Take%20this%20quiz%20and%20see%20what%20you%20get.&redirect_uri=http%3A%2Fbaseurl%2Farticles%2Fquizzes%2Fquiz-1-easy"> facebook share  

Facebook有一个很好的调试页面: https : //developers.facebook.com/tools/debug/og/object/

输入您要生成到该页面的URL,它将准确显示它如何解析页面以确定如何生成共享post。