Failed to update getstream activity generated from json

If we update the activity after retrieving from the stream, we can update

String feedId = "ef202000-3f6b-11e7-8080-800171e94936";
Feed feed = StreamUtils.getStreamClient().newFeed(Constants.FEED_SLUG, "feed_66_103");
NotificationActivityServiceImpl<MessageItem> userMessagesActivityService = feed.newNotificationActivityService(MessageItem.class);
FeedFilter filter = new FeedFilter.Builder().withIdGreaterThanEquals(feedId).withLimit(1).build();
StreamResponse<NotificationActivity<MessageItem>> userMessageItems = userMessagesActivityService.getActivities(filter, false, false);
if (userMessageItems != null && userMessageItems.getResults().size() != 0) {
    for (NotificationActivity<MessageItem> messageItemNotificationActivity : userMessageItems.getResults()) {
        for (MessageItem messageItem : messageItemNotificationActivity.getActivities()) {
            messageItem.setMessage_status(MESSAGE_STATUS_READ);
            userMessagesActivityService.updateActivities(Collections.singletonList(messageItem));
            Log.d("Message json", new Gson().toJson(messageItem));
        }
    }
}

      

But, if we update it by building an action, we cannot update

Feed feed = StreamUtils.getStreamClient().newFeed(Constants.FEED_SLUG, "chat_66_103");
String messageJson = "{\"channel_id\":\"feed_66_103\",\"message\":{\"message_text\":\"Test message\"},\"message_status\":\"DELIVERED\",\"receivers\":[103],\"actor\":\"66\",\"foreignId\":\"66_103_1495511846405\",\"id\":\"ef202000-3f6b-11e7-8080-800171e94936\",\"object\":\"delivery_message\",\"time\":\"May 23, 2017 9:27:26 AM\",\"to\":[],\"verb\":\"delivery_message\"}";
MessageItem messageItem = new Gson().fromJson(messageJson, MessageItem.class);
messageItem.setMessage_status(MESSAGE_STATUS_READ);
NotificationActivityServiceImpl<MessageItem> userMessagesActivityService = feed.newNotificationActivityService(MessageItem.class);
userMessagesActivityService.updateActivities(Collections.singletonList(messageItem));
Log.d("Message json", new Gson().toJson(messageItem));

      

In the setMessage_status method I change the values โ€‹โ€‹of the variables object, verb, message_status

There are even magazines that print the same object. We don't know what we are missing.

We also tried it from a python client. There is also a problem.

+3


source to share


1 answer


The update steps are performed using your foreign ID. Your payload is currently sending this value in a field called foreignId

and our endpoint will wait foreign_id

.



0


source







All Articles