因此,我正在尝试使用 FB Graph API,并制作了这个仅显示您的家庭提要的小测试站点。我还添加了一个点赞按钮,这样你就可以喜欢提要中的项目,就像在 FB 上一样。
现在,我有一个问题。因为在API 文档中它说您应该发布到:
https://graph.facebook.com/OBJECT_ID/likes
其中“OBJECT_ID”是对象的 ID。这在有对象(图片、共享故事等)的任何地方都很有效,但并不总是有对象。最常见的没有对象的项目可能是纯文本状态更新。因此,如果我尝试运行此代码:
function fbLike(id) {
console.log(id);
FB.api('/'+ id +'/likes', 'post', function(response) {
if (!response || response.error) {
alert('Error occured. ID: ' + id);
} else {
alert('Great! It worked. ID: ' + id);
}
});
}
在没有 object_id 的地方,我收到错误消息:
'Error occured. ID: undefined'
这很明显,因为没有 OBJECT_ID。所以,我所做的是在我的代码中进行 if/else 检查以查看是否存在 OBJECT_ID。如果没有,我将使用 POST_ID (response.data[i].id)。然而,这在控制台中给了我一个错误:
SyntaxError: At least one digit must occur after a decimal point
如果您不知道,帖子的 ID 看起来像这样:1796252809_3826036908205(而 OBJECT_ID 看起来像这样:545978668769904)。
所以,我很好奇如何解决这个问题。如何对没有 object_id 的纯文本(正常)状态更新点赞?我知道这是可能的,因为我可以登录 FB 的网站并喜欢那里完全相同的状态。
总结:我怎样才能给一个普通的帖子点赞?
希望有人知道如何解决这个问题!:)
真诚的,亚历山大。
编辑 1: 当我尝试单击类似按钮时,控制台中会显示语法错误。但是 fbLike 函数没有运行,因为那时我会在控制台中返回 id 以及带有错误或成功消息的警报消息。这就是我设置喜欢按钮的方式:
var facebook_footer = '<button onClick="fbLike('+object_id+')"> Like </button>';
and
var facebook_footer = '<button onClick="fbLike('+post_id+')"> Like </button>';
(我将它们作为变量保存在 for 循环中,然后使用 .innerHTML 将它们打印到 div 中)
post_id 是帖子的 id (xxxxxxxxxxx_xxxxxxxxxxx),object_id 是对象的 id(存在的地方) (xxxxxxxxx)。