谷歌加上时刻api添加目标中只有网址的活动没有显示在历史记录选项卡中

时间:2012-08-13 19:10:18

标签: json google-plus

我创建了一个活动json,如下所示并发布到google plus moments api

var activity = {   “type”:“http://schemas.google.com/AddActivity”,   “目标”:{   “url”:“http://www.qontext.com”   }};

POST成功但是时刻没有显示历史记录。身份验证得到了解决。 示例url工作正常。有人可以帮忙。

3 个答案:

答案 0 :(得分:2)

只要提供的目标网址未返回(html)包含所需元数据(http://schema.org/Thing)的内容,您插入的元素就不会显示在Google+历史记录中(无论是否响应将是HTTP 200或不是。)

在请求正文中提供元数据(作为“结果”JSON)也不起作用。因此,您必须确保目标网址将返回包含您要发布的数据的HTML。

E.g。这可以通过这样一个简单的PHP脚本来完成:

<?php
    $name   = $_GET["name"];
    $desc   = $_GET["desc"];
echo('
    <!DOCTYPE html>
    <html>
      <head>
        <title>emacberry DATA</title>
      </head>
      <body itemscope itemtype="http://schema.org/Thing">
        <section>Name: <div itemprop="name">'.$name.'</div></section>
        <section>Description: <div itemprop="description">'.$desc.'</div></section>
        <section>
          Thumbnail: <img itemprop="image" src="YOUR_LOGO_HERE"/>
        </section>
      </body>
    </html> 
    ');
?>

然后发布

{
    "type":"http://schemas.google.com/AddActivity",
    "target":{
        "url":"http://YOUR_SERVER/YOUR_SCRIPT.PHP?name=A_NAME&desc=A_DESC"
    }
}

通过这样做,您的活动将被添加到Google+历史记录中 - 但这当然意味着与您的服务器互动 - 这也可以为您带来一些好处。

答案 1 :(得分:1)

没有足够的信息可以确定,但我会调查以下内容:

1)确保在调用时刻API时有debug = true。如:

path: '/plus/v1moments/people/me/moments/vault?debug=true'

然后确保您正在查看返回的内容,看看是否有任何错误。

2)确保目标页面中有schema.org标记。虽然通常他们很高兴从页面中获取某些东西,但可能只是页面太复杂或太大而无法从整个页面中获取有用的信息。

答案 2 :(得分:1)

我试着提交你的时刻:

{
  "type":"http://schemas.google.com/AddActivity",
  "target":{
      "url":"http://www.qontext.com"
  }
}

到以下的演示应用程序:

http://plus-history-examples.appspot.com/client-side-flow/index.html

返回的回复是:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "badRequest",
        "message": "Unable to fetch metadata."
      }
    ],
    "code": 400,
    "message": "Unable to fetch metadata."
  }
}

所以我怀疑问题是http://www.qontext.com

缺少元数据