facebook - API 分享计数 Facebook Graph 已弃用?

标签 facebook facebook-graph-api

从今天起,当我尝试获取共享计数时,答案是:v2.9 及更高版本不推荐使用共享字段。

例如:https://graph.facebook.com/?id=https://stackoverflow.com&fields=share

如果没有&fields=share,则会显示 json 内容,但没有共享值。

我需要从网址获取 Facebook 的分享计数。

最佳答案

API 确实发生了变化。

应该是这样的。

https://graph.facebook.com/?id=https://stackoverflow.com&fields=engagement&access_token=user-access-token

您需要一个访问 token 。如果您有 Facebook,请访问 https://developers.facebook.com/并制作一个应用程序。

Graph API Explorer

然后单击“Graph API Explorer”。

Get Token

和“获取 token ”(获取应用程序 token )。就是这样。

如果你使用 JavaScript 进行计数,结果会是这样的。

// split('#')[0] : Remove hash params from URL
const url = encodeURIComponent( window.location.href.split('#')[0] );

$.ajax( {
    url : '//graph.facebook.com/?id=' + url + '&fields=engagement&access_token=user-access-token',
    dataType : 'jsonp',
    timeout: 5000,
    success : function( obj ) {
        let count = 0;

        if ( typeof obj.engagement.reaction_count !== 'undefined' ) {
            count = obj.engagement.reaction_count;
        }
        // do something with 'count'
    },
    error : function() {
        // do something
    }
} );

还有其他计数类型,例如 comment_count 和 share_count。

参见https://developers.facebook.com/docs/graph-api/reference/v3.2/url

有没有办法在不发送访问 token 的情况下接收计数?

我自己也想知道,哈哈

<小时/>

更新:

感谢安东·卢金。

是的。我不应该显示访问 token 。它必须被 Conceal 。我觉得自己很傻。

现在快速回答。这在没有 token 的情况下确实有效!

我的最终(我希望是最终的)答案是这样的。

// split('#')[0] : Remove hash params from URL
const url = encodeURIComponent( window.location.href.split('#')[0] );

$.ajax( {
    url: '//graph.facebook.com/?id=' + url + '&fields=og_object{engagement}',
    dataType : 'jsonp',
    timeout: 5000,
    success : function( obj ) {
        let count = 0;

        try {
            count = obj.og_object.engagement.count
        } catch (e) {
            console.log(e)
        }
        // do something with 'count'
    },
    error : function() {
        // do something
    }
} );

这里的一点是,当没有人共享目标页面时,“og_object.engagement”甚至都没有定义。

我以为我会得到 0 作为返回值。但事实并非如此。

所以让我们使用 try-catch。

现在我唯一关心的是 API 限制。如果您的网站获得大量综合浏览量,此更新版本可能无法正常工作。

关于facebook - API 分享计数 Facebook Graph 已弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55761103/

相关文章:

ios - 如何正确使用 Bolts Framework 代码以及 Parse 和 Facebook?

ios - iOS获取用户的Facebook ID和好友列表以及好友的个人资料图片网址

javascript - 单击提要上的共享时,facebook api 显示奇怪的 "Platform Story Share"

mysql twitter/facebook 喜欢状态提要

java - 从 facebook 解析大图像

ios - 程序中出现意外的 '@'

facebook - 是否可以通过图形 API 或任何其他资源获取所有共享特定帖子的用户 ID?

ios - 在 Facebook 帖子上将 map 作为图形对象共享( map 附件)

facebook-graph-api - Facebook Graph Api——我可以得到 "default"字段加上一些吗?

facebook-graph-api - 页面Feed中的LIMIT,SINCE和UNTIL参数