1

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

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

POST 成功,但该时刻未显示历史记录。身份验证得到处理。示例网址工作正常。有人可以帮忙吗。

4

3 回答 3

2

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

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

例如,这可以通过一个简单的 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+ 历史记录中 - 当然,这意味着与您的服务器的交互 - 这也可以为您带来一些好处。

于 2012-09-15T10:34:45.287 回答
1

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

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

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

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

2) 确保您在目标页面中有 schema.org 标记。虽然他们通常擅长从页面中获取某些内容,但可能只是页面太复杂或太大,以至于他们无法从整个页面中获取有用的信息。

于 2012-08-13T19:35:15.760 回答
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缺少元数据

于 2012-08-15T14:29:35.200 回答