There’s no way to get notifications from Facebook for a new post. You have to check by hand. Just set a transient with the desired expire time for the data so you don’t make a request on each reload, maybe check hourly for new data or every 30 mins, up to you.
As for your second question, read the docs:
https://developer.wordpress.org/reference/functions/wp_insert_post/
It automatically assigns an ID unless provided by you (which is auto-incremented by the system) but you still need to provide more things in the array, even if some are default, you might not want it like that.