2

我正在使用 Facebook API 在我的 Rails 应用程序中创建一个发送对话框。我只是使用 Facebook 在 Javascript 中推荐的格式(作为 HTML 中的脚本)。

我的问题是我得到一个:

 API Error code 100, invalid parameter, link URL not properly formatted

关于以下内容:

 <script>

    function detail(friend_id, user_name, restaurant_name, restaurant_id, articles){
      // assume we are already logged in
      FB.init({appId: '<%= Facebook::APP_ID.to_s %>', xfbml: true, cookie: true});

      FB.ui({
        to: friend_id,
          method: 'send',
          name: user_name +' needs more details about '+ restaurant_name,
           picture: 'http://fb-logo-75.png',
          link: "<%= Facebook::SITE_URL%>restaurants/"+restaurant_id,
          description: '<b>'+user_name + ' needs your help.</b> Add some color to your review of <b>'+restaurant_name+'</b> and help '+articles["object"]+' decide if he should eat there.'
          });
    }
     </script>

请注意:

a) Facebook::SITE_URL 因环境而异。您可能认为这是一个本地主机问题。但是,当我整合网站 URL 的值(这是一个有效的网站,与 localhost 不同)时,我仍然收到错误消息。然而,该链接(指向我在 Heroku 上的应用程序)肯定是有效的。

b) 当我发布到提要时,无论是从本地主机还是在生产中,我都没有收到错误消息。问题似乎仅限于发送对话框。

c) 当我输入另一个 URL,例如http://www.cnn.com时,我没有收到错误消息。以下是在页面上调用该方法的方式:

    <li class = "flat_list_item"><button id="detail_friend" onclick='detail(<%= review.user.fb_id.to_s %>, "<%= @current_user.first_name.to_s %>",
"<%= review.restaurant.name.to_s %>", <%= review.restaurant.id %>,<%= @current_user.gender_article.to_json %>)'>Tell me more</button></li>

注意:User.gender_article 是一个 hack,如果用户是男性,则提供“他/他/他”,如果用户是女性,则提供“她/她/她”。

这就是它在客户端的翻译方式:

的HTML:

<button id="detail_friend" onclick="detail(XXXX, &quot;Laurent&quot;,&quot;Refuge&quot;, 227,{&quot;subject&quot;:&quot;he&quot;,&quot;possess&quot;:&quot;his&quot;,&quot;object&quot;:&quot;him&quot;})">Tell me more</button>

这就是脚本在客户端的样子:

function detail(friend_id, user_name, restaurant_name, restaurant_id, articles){
  // assume we are already logged in
  FB.init({appId: 'XXXX', xfbml: true, cookie: true});

  FB.ui({
    to: friend_id,
      method: 'send',
      name: user_name +' needs more details about '+ restaurant_name,
       picture: 'http://fb-logo-75.png',
      link: 'http://powerful-woodland-3700.herokuapp.com',
      description: '<b>'+user_name + ' needs your help.</b> Add some color to your review of <b>'+restaurant_name+'</b> and help '+articles["object"]+' decide if he should eat there.'
      });
}

请注意,此链接实际上是一个功能链接(尽管有很多错误 - 但它存在并链接到实际网站)

4

1 回答 1

4

http://fb-logo-75.png的图片 URL无效

它必须是绝对 URL(例如:http://domain.com/path/to/image.png)并且不能位于 Facebook 的 CDN 上。所以把它改成http://your_domain.com/path/to/fb-logo-75.png

于 2013-04-05T20:47:28.243 回答