Javascript 正在检查Facebook Open Graph对象的操作状态
给定以下对对象发布操作的调用,确定用户是否已对所述对象执行操作的代码是什么?将“post”切换为“get”会提取用户的所有操作(不仅仅是当前obj),将第一个参数替换为对象的URL会引发错误Javascript 正在检查Facebook Open Graph对象的操作状态,javascript,facebook,facebook-graph-api,fbjs,facebook-javascript-sdk,Javascript,Facebook,Facebook Graph Api,Fbjs,Facebook Javascript Sdk,给定以下对对象发布操作的调用,确定用户是否已对所述对象执行操作的代码是什么?将“post”切换为“get”会提取用户的所有操作(不仅仅是当前obj),将第一个参数替换为对象的URL会引发错误 澄清:我想知道用户是在昨天还是在之前的某个时间采取了行动。不管当前呼叫是否成功 FB.api('/me/namespace:action', 'post', likeOpts, function(response) { if (!response
- 澄清:我想知道用户是在昨天还是在之前的某个时间采取了行动。不管当前呼叫是否成功
FB.api('/me/namespace:action', 'post', likeOpts, function(response) { if (!response || response.error) { console.log(response.error); } else { // success } });
- 没有这样的号召来实现这一点
您应该将以前的操作保存到数据库中(或者保存一个布尔值,表明用户已经执行了操作),或者检查/me/namespace:action的get响应中的上一个操作。从该响应中,您可以筛选当前对象url
如果是读取操作,则在让用户调用该操作两次时会出现错误
如果操作返回操作实例id,则调用成功并保存它
FB.api(
'/me/namespace:action',
'post',
{ OBJECT_TYPE: 'OBJECT_URL' },
function(response) {
if (!response || response.error) {
alert('Error occured');
console.log(response.error);
} else {
alert('Code was successful! Action ID: ' + response.id);
}
});
它应该显示在他们的订阅源中-如果用户已经为您提供了使用该应用程序的访问令牌,您可以检查用户的订阅源。我做了一个带有开放图的测试来测试这一点,但因为是我,我可以检查我自己的提要。对于另一个用户,您必须在访问令牌过期之前捕获它,并将其填充到FB graph explorer工具中。我想要问的问题的范围已经改变,所以这个答案不是100%直接的,但这是我最终使用的,我想这可能会让未来的观众受益 我通过JSSDK使用以下FQL查询,以确定特定用户是否喜欢特定对象。如果有,它将返回一个id为的数组。如果没有,它将返回一个空数组:
FB.api({
method: 'fql.query',
query: 'select user_id from like where user_id=' + UserIDVar + ' and object_id=' + ActionIDVar,
return_ssl_resources: 1
}, function(response){
console.log(response);
});
FQL查询可以根据您的需要进行修改,文档可以在此处引用:
你误解了我的意思。我的意思是“我如何判断用户是昨天还是之前采取了行动”。谢谢@Matrym您应该将以前的操作保存到数据库中(或者保存一个布尔值,表明用户已经执行了操作),或者检查/me/namespace:action的get响应中的上一个操作如果您将答案更改为“不可能”并附加注释,如果没有其他人想出解决办法,我会在几天内把它改正过来。谢谢您的时间。@Matrym这可能不是通过简单的API调用实现的。如果是在一年前(数千篇文章之前)完成的,我会非常糟糕。谢谢你的建议!而且,事实上,insights将为您提供度量标准,尽管与用户无关。