Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在检查Facebook Open Graph对象的操作状态_Javascript_Facebook_Facebook Graph Api_Fbjs_Facebook Javascript Sdk - Fatal编程技术网

Javascript 正在检查Facebook Open Graph对象的操作状态

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

给定以下对对象发布操作的调用,确定用户是否已对所述对象执行操作的代码是什么?将“post”切换为“get”会提取用户的所有操作(不仅仅是当前obj),将第一个参数替换为对象的URL会引发错误

  • 澄清:我想知道用户是在昨天还是在之前的某个时间采取了行动。不管当前呼叫是否成功

            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将为您提供度量标准,尽管与用户无关。