【问题标题】:Deleting a previosly posted Article with OpenGraph, or check if said Article has already been read使用 Open Graph 删除之前发布的文章,或检查该文章是否已被阅读
【发布时间】:2012-04-29 16:42:49
【问题描述】:

我创建了一个用于阅读文章的简单应用,它使用以下代码创建帖子:

  FB.api('/me/[NAMESPACE]:read&article=http://example.com/article.html','post', function(response) {

                 if (!response) { 
                      alert('Error Occurred I got no response with ' + $pageURL);
                 }
                 else if (response.error) {
                      alert('Error Occurred' + response.responseText + " " + response.error.responseText);
                 } else {
                     alert('Post was successful! Action ID: ' + response.id);
                     var idToDeleteLater = response.id;
                 }
         });

并且我希望能够检查该页面是否曾被访问过,因此我将能够禁止为同一篇文章进一步创建帖子。

但为了做到这一点,我需要获取文章 ID,但我无法使用 response.id 命令获取它,因为该命令只给了我单个帖子的 ID。

我不想使用给定的方法:

  function postUnreadSpecific()
  {
  var postId = idToDeleteLater;

  FB.api(postId, 'delete', function(response) {
  if (!response || response.error) {
    alert('Error occured');
  } else {
    alert('Post was deleted');
  }
});

因为阅读是通过按钮完成的(与烹饪教程中的相同),所以每当我按下按钮时,都会创建具有不同 ID 的新帖子,而且我显然不想手动输入它们。

那么,底线是,如何获取页面 ID(不是带有 response.id 的帖子 ID),并进行检查,如果之前访问过该页面,则禁用新帖子的创建...

【问题讨论】:

  • 类似于 WP Social Reader,我想让它检查我是否已经阅读过该页面上的文章,如果已经阅读,则禁止为该文章进一步创建新帖子。

标签: javascript facebook-graph-api facebook-opengraph


【解决方案1】:

Facebook Open Graph 操作可以选择唯一。此设置位于隐藏在“高级设置”链接下的“配置故事附件”下的动作创建页面上。在那里,您会找到一个名为“唯一操作”的切换开关,可以将其设置为“仅允许一次”。这样可以确保每个用户只有一个“动作-对象”对。

请注意,您需要在设置操作时执行此操作,因为操作在获得批准后无法编辑。

【讨论】:

  • 是的,谢谢,这很有效。现在,有没有办法从数组中删除第一个帖子?喜欢 response[0].id?
  • 我明白了,我错过了格式。它实际上类似于:response.data[0].data.article.id,所以现在我首先将文章 id 获取到 var 中,然后我将它传递给另一个 DELETE 方法。
猜你喜欢
  • 2012-06-18
  • 1970-01-01
  • 1970-01-01
  • 2013-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
相关资源
最近更新 更多