Facebook opengraph洞察api来自我的应用程序的特定帖子ID

时间:2014-03-13 23:11:57

标签: facebook-graph-api facebook-insights

我想构建一个仪表板,从应用程序生成的洞察中返回更多自定义洞察。

该应用是一个Facebook连接网站,用户访问并查看产品列表。他们可以通过分享在时间线上合并该产品的自定义故事,向Facebook发布有关该特定产品的信息。

当我查看我的应用的见解时,它可以很好地向我展示我网站上生成的所有自定义故事的所有社交印象。

我希望针对特定产品进一步缩小范围。

我的计划是记录这些操作生成的对象ID,并将它们链接到我的数据库中的特殊产品。

然后我想创建一个新的仪表板页面,允许我登录,请求read_insights权限,然后使用我的数据库中的object_id:产品映射来显示给定记录的社交印象数量产品的object_ids。

这可能吗?我已经阅读了很多相关内容,但仍未找到最优雅的方式来获取已发布的每种内容的社交展示的细分报告。

感谢您的时间。

2 个答案:

答案 0 :(得分:1)

实施完全取决于您希望应用程序在哪个平台上运行。

第一个主要组成部分是您必须拥有一个易于注册的Facebook开发者帐户。只需访问developers.facebook.com并注册即可。需要2分钟。之后,您需要创建第一个应用程序,并在托管应用程序的位置添加正确的域名以及运行的平台。 (iOS,Android,Web等)完成后,您可以公开您的应用程序,以便在代码中使用Facebook API。

对于应用创建本身。您需要做的第一件事是为您的平台导入正确的API。你可以在https://developers.facebook.com/docs/找到一个步骤。导入API后,您必须构建一个Facebook对象,其中包含您的应用程序ID和可能的应用程序密钥。如果您使用的是JavaScript,则不要使用应用秘密,因为它对公众可见。

现在您拥有了Facebook对象,您必须要求应用用户登录并授予您应用的权限。您可以通过将范围值添加到Facebook生成的登录按钮,为您的登录过程添加扩展权限。这是一个例子。

<fb:login-button id="loginBtn" max_rows="1" scope="basic_info,read_insights,manage_pages" size="medium" show_faces="false" auto_logout_link="true"></fb:login-button>

用户登录后,您现在可以使用Facebook Api调用社交图来查询用户帐户中的信息。 Facebook还提供了一个工具来帮助您找出可以查询的信息。 https://developers.facebook.com/tools/explorer

您想要使用该应用程序执行的所有其他操作都可以通过Facebook API调用完成。您只需要确保在进行API调用之前授予用户正确的权限。

API调用稍有不同,具体取决于您使用的语言语法,但它们都遵循相同的数据模型并返回一些响应数组,这些响应可以使用JSON或标准数组格式进行解析。上面列出的Graph Explorer工具将显示查询的输出,以便您可以相应地处理它们。

我希望这有助于您入门。

<强> EDITED

这是JavaScript中的实现

function getMetric(){

// make the API call

FB.api(
"/{app-id}/insights/application_opengraph_story_impressions",
function (response) {
  if (response && !response.error) {
    /* handle the result */
  }
}
);

}

以下是Facebook文档备份的参考https://developers.facebook.com/docs/graph-api/reference/insights

application_opengraph_story_impressions可能会为您提供应用所有故事的总体印象。我在我的Facebook应用程序上运行它,它又回来了,但我没有任何故事,所以它可能适用于你的。此外,在文档中还有一个*这个指标,我无法找到这意味着什么。

答案 1 :(得分:1)

我很确定现在Facebook不会让开发人员能够获得有关应用自定义故事的见解。

目前,Facebook文档具有以下适用于数据洞察的Graph API:

  • / {页-ID} /见解
  • / {应用ID} /见解
  • / {域-ID} /见解
  • / {post-id} /见解(这是一个页面帖子)

因此,/{post-id}/insights无法正常工作,因为自定义故事实际上是用户的帖子,而其他终结点并不适用于您的案例。

据我所知,访问Insights的唯一选择是FQL。为此,您将以类似于此的方式使用见解表:

SELECT ... FROM insights WHERE object_id = ... AND metric = ... AND end_time = ... AND period = ...

现在很有可能这也不适用于您的自定义故事帖(我没有帖子,我现在可以尝试,所以我不能告诉)但至少它在文档中没有明确说明,所以你应该尝试一下。

更新: 我无法通过FQL获取任何洞察数据,但据我所知,以下代码应该至少给了我一些东西(对象ID是我的页面):

  

SELECT细分,end_time,事件,指标,object_id,期间,值FROM见解WHERE object_id = 224981264214413和metric =&#39; page_fans&#39;和句点=句点(&#39;生命周期&#39;)和end_time = 1395597892

但结果只是

{
  "data": []
}

Facebook也有一些关于类似主题的错误报告:https://developers.facebook.com/x/bugs/508088155954330/他们确认了问题,分配了它,并且......在6个月内没有做任何修复。

如果FQL不起作用,我的建议是 - 使用您自己的分析代码跟踪自定义故事的创建并获取用户的朋友数。它不会向您展示帖子的实际曝光率,但至少您会看到一些数据,这些数据可以更频繁地发布哪些类型的自定义故事以及可能看到它们的最大潜在朋友数量。顺便说一下 - 为了使图表更容易,您可以使用Google Analytics事件。