I'm trying to figure that out also and here's why I understand so far:
- By default, all posts are published on past tense. "Username ate a pizza"
If you want to use present tense, you have to set "end_time" attribute like this:
[action setEnd_time:@"2014-03-08T23:23:23"]; //a date on the future
This will look on user's timeline like "Username is eating a pizza" and that will continue showing like that until the date specified by end_time arrives. I think that there could be an issue with time zones that I'm currently experiencing, so be careful if you need to handle different time zones.
According to documentation, "expires_in" attribute is a shortcut for "end_time" but instead of using a datime object, you can use a seconds delta, something like "this is in present tense until 500 seconds passed since it's been published", but I haven't been able to make this work (posts always shows as past tense)
[action setExpires_time:@"500"];
All other flexible sentences structures are managed by Facebook and you can't control when to show them. For instance, if two users of your app share content from it, it will show on friend's timeline something like "user1 and user2 are eating a pizza".
If you find out something else, please, update your post