Anthony Ponomarenko and I both tested setting up new Twitter integration on different Matrix instances and all work fine.
An existing integration (a Trigger action to update status) on my local system still works fine.
I can't see there is any problem with it.
One thing i'd like to clarify is that, do not use the new Oauth 2 Token asset in Matrix, Twitter doesn't fully support Oauth 2. It just supports Oauth 1.1.
So just stick with the REST Resource Oauth Session asset that uses Oauth 1.1 standard.
What happened to Charlie W and Nic Hubbard are probably different.
Charlie W had a sudden break on an existing integration (already had a stored Access Token). This indicates some external factors changed caused this.
Nic Hubbard could not set up a new integration ( failed to get Request Token), this usually means incorrect configuration on Twitter side or Matrix side.
I have below suggestions:
for Nic Hubbard,
It happens to me a few times before too, but all turns out to be config issue. Some common cases:
- The Consumer Key, Consumer Secret and those Token URLs pasted in Matrix are incorrect. Sometime it has trailing/heading spaces when i paste the details from Twitter site.
- The Redirect URL filled in Matrix and settings in Twitter is blank or doesn't match.
In twitter apps site (http://apps.twitter.com/), your app needs to have a Redirect back URL set and this URL should be same or at least the parent domain of the Redirect URL you filled in Matrix end.
- Check your Matrix proxy settings. Try to disable them but still allow Matrix to make connection to twitter site.
Once your have Access Token acquired, you can turn off the connection again.
- Some settings on Matrix Oauth asset to check
-- should use POST as default method
-- redirect to authorize should be yes by default
-- try to apply a blank design or no design
for Charlie W
Try to think hard what has been changed around the time the integration was broken.
Any server setting changed? Anyone changed Twitter app setting on Twitter site?
Note that, the Access Token Twitter grants, never expires, You can only manually revoke it on http://apps.twitter.com/.
The trigger action stores the granted Access Token. So most likely it's some external factors got changed.
If you regenerated a new Consumer Key and Secret, you have to update that Matrix Trigger and set up the integration again to get a new Access Token.
If you are familiar with PHP code. You can use below code to dump out the full communication Matrix had with twitter token API to help understanding what happened.
in core/attributes/oauth/oauth.inc, find function getRequestToken and getAccessToken.
After the line $this->_performRequests();
insert below log dump code
log_dump($this->_res);
This will dump out the communication details to Matrix error log.
For those not familiar with Oauth, In a Oauth integration, app gets a Request Token first, and then redirect to the Twitter site with Request Token for authentication, after authentication redirected back to Matrix, finally Matrix will use the authentication response to get a permanent Access Token. The Access Token is used as authentication token to make REST API calls to Twitter.
Without getting access to your instance and debug the issue myself, i can't say for sure.
Hope my comment helps.