我希望能够使用Javascript SDK获取网页的评论插件数。在2.9之前的Graph API版本中,我可以使用share
端点访问此版本而没有访问令牌,但是因为版本2.9 share
已弃用并替换为engagement
,现在需要访问令牌。我知道我不应该将app令牌暴露给客户端,所以有人知道如何使用Javascript SDK在客户端实现这一点吗? 2.9之前的Graph API版本允许我使用share
字段执行此操作,但此更改将导致我显着更改我的代码,因为它需要我将代码从客户端移动到服务器 - 侧。如果可能的话,我不想这样做。此更改是否也不会使Javsacript SDK变得多余,因为所有请求都需要一个客户端无法访问的访问令牌?
对于Facebook Graph API v2.8及更低版本,我可以使用share
字段获取在已经实施Facebook评论插件的网页上发布的评论数量,如下所示:
FB.api(
"/",
{
fields: "share{comment_count}",
id: url
},
function (response) {
if (!!response.error) return;
var commentCount = Number(response.share.comment_count);
}
);
通过发出此HTTP GET请求可以访问同样的事情: https://graph.facebook.com/v2.8/?id=URL_HERE&fields=share{comment_count}
另请注意,它不需要访问令牌,这是有意义的,因为这是公开信息,因此无需授权。这样可以使用Javascript SDK在客户端浏览器上使用JavaScript轻松获取评论数。
根据{{3}}以后的更改日志:
GET /{url}/share
-share
端点已被删除并替换 用:带有子字段的
engagement
字段:
- COMMENT_COUNT
- comment_plugin_count
- reaction_count
- SHARE_COUNT
作为旁注,如果我查看Graph API version 2.9,则不会提及更改日志中提到的子字段。
但我的问题是调用此HTTP GET请求:documentation for the engagement
endpoint要求我拥有access_token
。如果我使用我的app令牌,它就可以了。如何在不泄露应用令牌的情况下在客户端调用它?在使用share
端点之前,这是一项简单的任务,但考虑到评论插件计数应该始终可以在没有任何授权的情况下公开访问,使用engagement
端点似乎不必要。