3

我正在做一个有趣的项目,其中一个要求是来自我选择的 API 的 JSON 数据,并使用 angularjs 将其转换为活动流。

我用谷歌搜索并阅读了活动流是什么,我相信我对它有基本的了解。它本质上是使用关键字“actor”、“verb”、“object”和“target”将动作转换为特定的 JSON 格式。

当我查看示例时,我理解了为什么将特定的 JSON 字符串视为活动流。

例子:

  {
"published": "2011-02-10T15:04:55Z",
"actor": {
  "url": "http://example.org/martin",
  "objectType" : "person",
  "id": "tag:example.org,2011:martin",
  "image": {
    "url": "http://example.org/martin/image",
    "width": 250,
    "height": 250
  },
  "displayName": "Martin Smith"
},
"verb": "post",
"object" : {
  "url": "http://example.org/blog/2011/02/entry",
  "id": "tag:example.org,2011:abc123/xyz"
},
"target" : {
  "url": "http://example.org/blog/",
  "objectType": "blog",
  "id": "tag:example.org,2011:abc123",
  "displayName": "Martin's Blog"
}

}

但我对如何将我的 JSON 数据转换为活动流感到困惑。

我的 JSON 没有“演员”,也没有“动词”。如果有人可以请解释或提供一个将不胜感激的解决方案。谢谢!

天气 API

{
  "coord": {
    "lon": -0.13,
    "lat": 51.51
  },
  "weather": [
    {
      "id": 300,
      "main": "Drizzle",
      "description": "light intensity drizzle",
      "icon": "09d"
    }
  ],
  "base": "stations",
  "main": {
    "temp": 280.32,
    "pressure": 1012,
    "humidity": 81,
    "temp_min": 279.15,
    "temp_max": 281.15
  },
  "visibility": 10000,
  "wind": {
    "speed": 4.1,
    "deg": 80
  },
  "clouds": {
    "all": 90
  },
  "dt": 1485789600,
  "sys": {
    "type": 1,
    "id": 5091,
    "message": 0.0103,
    "country": "GB",
    "sunrise": 1485762037,
    "sunset": 1485794875
  },
  "id": 2643743,
  "name": "London",
  "cod": 200
}
4

2 回答 2

1

ActivityStream 只是活动的规范。天气只是一个模型。模型可以是主体/参与者,也可以是参与者所作用的对象。在这种情况下,天气只能是一个对象。

处理天气的活动示例是:

Martin 在 2015 年 2 月 10 日下午 3:04 UTC 检查伦敦的天气。

对应的活动 JSON 为:

{
  "published": "2015-02-10T15:04:55Z",
  "actor": {
    "url": "http://example.org/martin",
    "objectType" : "person",
    "id": "tag:example.org,2011:martin",
    "image": {
      "url": "http://example.org/martin/image",
      "width": 250,
      "height": 250
    },
    "displayName": "Martin Smith"
  },
  "verb": "search",
  "object" : {
    "url": "http://api.openweathermap.org/data/2.5/weather?q=London",
    "name": "London's weather",
    "published": "2015-02-10T15:04:55Z"
  }
}

请注意,这只是一个示例。您可能有不同的活动,具体取决于您希望如何使用天气数据。

于 2017-07-08T21:41:35.273 回答
0

活动流的概念非常简单。这是一个很好的例子:“Wendy 将伦敦添加到她的旅行地点列表中”

在这种情况下,演员是“wendy”,宾语是“london”,动词是“add”,目标是“places to visit”。

您可以使用此语法来支持不同的用例。我见过人们使用它的活动流规范,从建筑的 Leed 认证、错误报告到社交应用程序。

示例 2:

应用程序 Uber 出现故障,错误代码为 2,并已分配给 John

  • 演员:应用:uber
  • 词目:断
  • 对象:错误:2
  • 目标:用户:John

示例 3:

RoadToVR 发表了一篇关于 Echo Arena 的文章

  • 演员:RoadToVR
  • 动词:发表
  • 对象:文章:123

高级领域

该规范还概述了 TO 字段。您可以使用 TO 字段来支持@提及、主题标签和通知。

版本 2

还有一个新版本的活动流规范可用: https ://www.w3.org/TR/activitystreams-core/ 到目前为止,我没有看到任何应用程序采用这个新规范的证据。

活动流教程

如果您想构建 Twitter 样式的提要,本教程是一个很好的起点: https ://getstream.io/get_started/

于 2017-07-12T20:45:28.427 回答