The manual specifies that uniqueness is based on foreign_id
and time
fields.
I have an activity where a user joins a specific event. The event has its own start date which I want to display in the timelines, therefore I am submitting it as extra data (as well as name and location etc, but I omitted those here to prevent clutter). I submitted the activity with the following activity array to a user feed. Notice I am in Amsterdam, which is (at the moment) in a timezone of GMT+0200:
Array
(
[actor] => User:3
[verb] => join
[object] => Event:2
[event_start] => 2016-09-26T19:00:00+0200
[to] => Array
(
[0] => notification:2
)
[foreign_id] => join:2
[time] => 2016-09-16T13:29:13+0200
)
When I retrieve that users' user feed, this comes back as:
{
"duration":"17ms",
"next":"",
"results":[
{
"actor":"User:3",
"event_start":"2016-09-26T19:00:00+0200",
"foreign_id":"join:2",
"id":"cb0f4a80-7c00-11e6-8080-80010479bedb",
"object":"Event:2",
"origin":null,
"target":null,
"time":"2016-09-16T11:29:13.000000",
"to":[
"notification:2"
],
"verb":"join"
}
]
}
Notice the difference in the date fields. Both were submitted as ISO8601 fields, but only the event_start
field is returned as such. The time
field is returned in a different format but without any timezone indicator. It's apparently converted to UTC time but it's lacking the trailing Z that should indicate that. Therefor I cannot reliable use it as a time indicator.
I could work around this by adding another time field to the activity array (which works fine and returns a correct ISO8601 date), but that feels quite redundant.
Is this a bug, am I doing something wrong or should we simply not rely on the time
field for an indication of when the activity took place?