从经过身份验证的用户获取Open Graph操作ID

时间:2012-05-05 13:58:05

标签: php javascript facebook facebook-graph-api facebook-fql

我正在Facebook Open Graph API上第一次拍摄。我已经制作了自定义动作类型和对象类型。对于这个问题,我将它们命名为“myaction”和“myobject”。

function postAction(){
    FB.api(
        '/me/appnamespace:myaction?myobject=http://domain.com/page.php',
        'post',
        function(response) {
            if (!response || response.error) {
                alert('Error: ' + response.error.type + ' - ' + response.error.message);
            } else {
                //alert('Like was successful! Action ID: ' + response.id);
                var likedId = response.id;
                alert('Action was successful! Action ID: ' + response.id + ' (var = ' + likedId + ')');
            }
        }
    );
}

这很有效。该操作将发布到用户的时间线。

但是,如果该用户想要在其他会话中从我的网站删除该操作(或多个操作)?有没有办法从用户查询自定义操作并显示它们?我可以使用数据库,并存储actionId,但是当用户已经删除了Facebook上的操作时,这将发生冲突

删除操作的代码为:

function deleteAction(){
    FB.api(
        'xxxxxxxxxx',  // Here the Action ID must be inserted
        'delete',
        function(response) {
            alert('action deleted')
        }
    );
}

修改:

这适用于从特定页面(对象)获取操作:

function getAction(){
    FB.api(
        '/me/appnamespace:myaction?myobject=http://domain.com/page.php',
        'get',
        function(response) {
            if (!response || response.error) {
                alert('Error: ' + response.error.type + ' - ' + response.error.message);
                console.log(response);
            } else {
                console.log(response);
            }
        }
    );
}

这适用于从用户获取所有自定义操作:

function getAllAction(){
    FB.api(
        '/me/appnamespace:myaction',
        'get',
        function(response) {
            if (!response || response.error) {
                alert('Error: ' + response.error.type + ' - ' + response.error.message);
                console.log(response);
            } else {
                console.log(response);
            }
        }
    );
}

简而言之,有没有办法在FQL中执行此操作:

  • 从当前网址查询对象ID?
  • 从用户查询操作ID(所有自定义操作和/或基于对象ID的特定操作)?

提前致谢!

1 个答案:

答案 0 :(得分:1)

这些数据不能通过FQL获得,目前只能通过Graph API获得。希望它能尽快出现。

看到这个问题:

  1. FQL to get user's open graph video.watches activity

  2. How to get all the Open Graph Beta actions generated by an app?