我正在使用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)当我发布到Feed时,无论是从localhost还是在生产中,我都没有收到错误。问题似乎仅限于发送对话框。
c)当我输入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是一个黑客,如果用户是男性,则提供“他/他/他是否是男性”,如果用户是女性,则提供她/她/她。
这就是客户端的翻译方式:
HTML:
<button id="detail_friend" onclick="detail(XXXX, "Laurent","Refuge", 227,{"subject":"he","possess":"his","object":"him"})">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.'
});
}
请注意,此链接实际上是一个功能链接(虽然有很多错误 - 但它存在并链接到实际网站)
答案 0 :(得分:4)
http://fb-logo-75.png的图片网址无效
它必须是绝对网址(例如:http://domain.com/path/to/image.png),并且不能位于Facebook的CDN上。所以将其更改为http://your_domain.com/path/to/fb-logo-75.png