When a user starts watching any video-based content through your app, and has viewed a particular video content for at least 10 seconds, publish a story to Open Graph about the video.watches action with video as a reference to the built-in video-type object content.
POST https://graph.facebook.com/me/video.watches?video=[video-type content url]
You can also supply values for optional action properties such as start_time to specify when a user started watching a movie and expires_in to specify the length of a movie in seconds. By default, start_time will be set to the publish time of the Open Graph story about the activity, and expires_in will be set to the duration of the video-type object as specified in its Open Graph object markup.
For example, if a user watched a Movie for two hours on May 5th, 2011, this activity would be published to Open Graph as
POST /me/video.watches?
video=[movie object content url]&
created_time=2011-05-05T13:22&
expires_in=7200
This call will return an id that represents this particular instance of a movie watching activity.
If the user watches more than 50% of a video, but does not complete it, the action instance should be updated to reflect that the user has stopped watching by updating expires_in to the length of time the video was actually watched:
POST https://graph.facebook.com/[watch action instance id]?expires_in=7054
When a user watches less than 50% of a video, or if a user removes a watch activity from your app/site, you should also remove the corresponding action instance that was published to Open Graph by invoking the following call
DELETE https://graph.facebook.com/[watch action instance id]
You are also able to search for the corresponding action instance id if you have the appropriate permissions to query a user's list of published built-in Watch actions by invoking the following call
GET https://graph.facebook.com/me/video.watches