我目前正在使用jQuery记录我网站上Facebook共享链接的每次点击,但我正在寻找更准确的解决方案。我没有记录点击,而是记录实际的“份额”。有没有办法在用户共享链接后从Facebook获回响应消息?
答案 0 :(得分:28)
我今天遇到了这个问题:http://graph.facebook.com/http://stackoverflow.com
它返回指定URL的总份额。我的应用程序中的每个用户都有唯一的URL,因此我可以使用此功能轻松跟踪其共享。
它也适用于Twitter:http://urls.api.twitter.com/1/urls/count.json?url=http://stackoverflow.com
答案 1 :(得分:2)
只要它仍然有效,您就可以使用Facebook" Feed"对话而不是" Share"对话框始终获得共享确认。 (这适用于Javascript Facebook SDK。)
这是我对两者之间差异的理解:
FB.ui({
method: 'share',
href: 'http://stackoverflow.com/questions/5363517',
}, function(response){
console.log(response)
});
如果用户已登录并授权您的应用:
response
变量中获得一个帖子ID:{post_id: "10205041067000110_10205045578512895"}
。response
将为空。如果用户未登录到您的应用程序(他们仍需要登录Facebook):
response
变量都将为空。因此,如果您绝对需要共享确认,则必须先要求用户登录。这可能不是您的应用程序的问题,但在我的情况下,这给共享过程增加了不必要的摩擦。
(已弃用但仍处于有效状态)
FB.ui({
method: 'feed',
link: 'http://stackoverflow.com/questions/5363517',
caption: 'Test Caption',
}, function(response){
console.log(response)
});
登录状态的反应(w.r.t。您的应用;他们仍然需要登录Facebook):
response
变量的帖子ID为{post_id: "10205041067000110_10205045578512895"}
。response
将为空。使用此方法,无论登录状态如何,您都可以随时判断是否有人发布。
答案 2 :(得分:0)
您可以使用ShareThis之类的东西代替您的jquery函数,甚至可以获得更多的见解,分析等。 但是,您会遇到同样的问题,这些问题是通过非现场分享/喜欢创建的,例如发布在此处:http://forums.sharethis.com/topic.php?id=2947
答案 3 :(得分:0)
这就是我所做的....使用调用此javascript函数的常规锚点创建共享(间距或括号或某些内容可能已关闭):
FB.ui(
{
display:'iframe',
method: 'stream.publish',
caption: 'Put something here',
description: 'put something here',
name: 'foo',
link: 'http://www.foo.com',
picture: 'http://fo.com/img.gif'
},
function (response) {
if (response && response.post_id) {
//this means the post was completed....response.post_id is the FB post ID
$.ajax({
var URL = '/pages/ajax_InsertUserFacebookPost.aspx?';
URL += 'facebookpostid=' + response.post_id;
type: "GET",
url: URL,
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true
});
} else {
//alert('Post was not published.');
}
}
);
答案 4 :(得分:0)
截至2016年4月,Twitter有deprecated v1他们的api,并且没有为之前的方法提供替代方法来确定链接的份额。您need to use他们的搜索API只维护过去7天的共享计数,现在您需要订阅他们的流式API以维持您自己的长期运行计数。
或者,您可以使用免费服务,例如http://newsharecounts.com或http://opensharecount.com/,以便他们代表您订阅API并维持计数。但是,预计共享计数可能需要一分钟(或更长时间)才能更新。
来自newsharecounts常见问题 -
"无论您的网站有多大,或者您的内容有多大,我们平均在1分钟内检测到新股#34;
来自opensharecount.com主页 -
"搜索结果可能需要一些时间才能进入,因此最初报告的计数在所有链接上都为零。如果一小时后仍然为零,请与我们联系。 "
Re:FB分享(http://graph.facebook.com/(url)),请注意,用户可以使用共享对话框并选择“只有我”。选项,它仍然与他们与朋友分享的方式相同。知道分享者之后不久也可以删除帖子,但未来对api的调用不会反映出来。