A connector is responsible for finding out if a document needs to be updated or created on the target (http://www.integratedfordevelopers.com/content/documentation/article/creating-an-exporter-for-content-distribution).
Add a Facebook or Twitter connector
Publish an article to it
--> article is posted
Edit and save the article
--> article is posted again
The article should not be posted twice. The previous post should be updated (or the second one should be ignored).
Available in (and added to the technical tasks)
The exporter can return an object with remote_id, url and state. All are optional. In this issue only the remote_id is implemented.
Enable the IntegratedSocialBundle in the AppKernel and implement the config.yml
Add an ID field to 'channel_connector_config' and refactor the connector controller to make use of the ID
In 'Integrated\Bundle\SocialBundle\Connector\Facebook\Exporter::export' check if is posted before.
Check the response code from '$this->facebook->post()' if the request was successful
In 'vendor/integrated/integrated/src/Common/Channel/Exporter/Exporter.php' change the function getExporter(OptionsInterface $options) to getExporter(ConfigInterface $config); (change all methods, including the interface). Need the connector ID to check if posted before.
Save the state per connector config to the metadata if not posted before (to support multiple connector configs).
The connector should return the remote post ID (or other data) and should not save the data. The data should be saved in the QueueExporter class. The data will be an array.
Save the Facebook/Twitter post ID to remove the article later (if the article is not published anymore)
NOTE: the exporter should not save any data to the document.