Twitter’s error messages have been most UN-helpful in my experience: you get 401 for just about anything that is wrong.
The base string looks like this (secrets modified):
GET&https%3A%2F%2Fapi.twitter.com%2F1.1%2Faccount%2Fverify_credentials.json&oauth_consumer_key%3D[app-key]%26oauth_nonce%3DMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1428074015%26oauth_token%3D[user-token]%26oauth_version%3D1.0
The authorization header looks like this (secrets modified):
OAuth realm=“twitter.com”,oauth_consumer_key="[app-key]",oauth_nonce=“MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAw”,oauth_signature="[generated signature]",oauth_signature_method=“HMAC-SHA1”,oauth_timestamp=“1428074015”,oauth_token="[user-token]",oauth_version=“1.0”
Hope this helps.
–Owen