Twitter API
Formula:
Hash(SignatureBaseString, SigninKey)
C#
: ImplementationPOST
POST&
POST&https%3A%2F%2Fapi.twitter.com%2F1%2Fstatuses%2Fupdate.json
POST&https%3A%2F%2Fapi.twitter.com%2F1%2Fstatuses%2Fupdate.json&
Let's say:
status: Hello Ladies + Gentlemen, a signed OAuth request!
include_entities: true
oauth_consumer_key: xvz1evFS4wEEPTGEFPHBog
oauth_nonce: kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg
oauth_signature_method: HMAC-SHA1
oauth_timestamp: 1318622958
oauth_token: 370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb
oauth_version: 1.0
Example Parameter String:
include_entities=true&oauth_consumer_key=xvz1evFS4wEEPTGEFPHBog&oauth_nonce=kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1318622958&oauth_token=370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb&oauth_version=1.0&status=Hello%20Ladies%20%2B%20Gentlemen%2C%20a%20signed%20OAuth%20request%21
Example Signature Base String:
POST&https%3A%2F%2Fapi.twitter.com%2F1%2Fstatuses%2Fupdate.json&include_entities%3Dtrue%26oauth_consumer_key%3Dxvz1evFS4wEEPTGEFPHBog%26oauth_nonce%3DkYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1318622958%26oauth_token%3D370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb%26oauth_version%3D1.0%26status%3DHello%2520Ladies%2520%252B%2520Gentlemen%252C%2520a%2520signed%2520OAuth%2520request%2521
Simply: Percent Encoded Consumer Secret + &
+ Percent Encoded Token Secret
Assume
Consumer Secret is kAcSOqF21Fu85e7zjz7ZN2U4ZRhfV3WpwPAoE3Z7kBw
Token Secret is LswwdoUaIvS8ltyTt5jkRh4J50vUPVVHtR2YPi5kE
Example Sign In Key:
kAcSOqF21Fu85e7zjz7ZN2U4ZRhfV3WpwPAoE3Z7kBw&LswwdoUaIvS8ltyTt5jkRh4J50vUPVVHtR2YPi5kE
Finally, hashed signature is:
tnnArxj06cWHq44gCs1OSKk/jLY=
Application Key. Get Here
Guid.NewGuid().ToString("N")
in C#
Always HMAC-SHA1
A value which is generated by running all of the other request parameters and two secret values through a signing algorithm.
Indicates when the request was created. Twitter will reject requests which were created too far in the past, so it is important to keep the clock of the computer generating requests in sync with NTP.
Represents a user’s permission to share access to their account with your application.
Always 1.0
All the values should be percent encoded before attaching them to Authorization header
e.g. in C#
:
Uri.EscapeDataString("The value");
Example Authorization Header should be like this:
OAuth oauth_consumer_key="xvz1evFS4wEEPTGEFPHBog", oauth_nonce="kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg", oauth_signature="tnnArxj06cWHq44gCs1OSKk%2FjLY%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1318622958", oauth_token="370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb", oauth_version="1.0"