You need to sign in to do that
Don't have an account?
Starhunter
twitter request token
I am trying to obtain a request token from twitter by using the following code:
** is my consumer key while ## is the consumer secret. But i am receiving status 401 error(authorization required)
public void makeCall(){ //String callBack= EncodingUtil.urlEncode('https://testCallback.com', 'UTF-8'); String callBack = EncodingUtil.urlEncode('https://login.salesforce.com/','UTF-8'); String consumerKey = '***'; Http h = new Http(); HttpRequest req = new HttpRequest(); String timestamp = String.valueOf(DateTime.now().getTime()/1000); String nounce = String.valueOf(Crypto.getRandomLong())+String.valueOf(Crypto.getRandomLong())+String.valueOf(Crypto.getRandomLong())+String.valueOf(Crypto.getRandomLong()); //String nounce = 'eicbejsnoiajsfiohadlf89u89mnasmd'; system.debug(timestamp+' '+nounce); String paramString = EncodingUtil.urlencode('oauth_callback','UTF-8') +'='+EncodingUtil.urlencode(callBack,'UTF-8')+'&'+EncodingUtil.urlencode('oauth_consumer_key','UTF-8')+'='+EncodingUtil.urlencode(consumerKey,'UTF-8')+'&'+EncodingUtil.urlencode('oauth_nonce','UTF-8')+'='+EncodingUtil.urlencode(nounce,'UTF-8')+'&'+EncodingUtil.urlencode('oauth_signature_method','UTF-8')+'='+EncodingUtil.urlencode('HMAC-SHA1','UTF-8')+'&'+EncodingUtil.urlencode('oauth_timestamp','UTF-8')+'='+EncodingUtil.urlencode(timestamp,'UTF-8')+'&'+EncodingUtil.urlencode('oauth_version','UTF-8')+'='+EncodingUtil.urlencode('1.0','UTF-8'); req.setEndpoint('https://api.twitter.com/oauth/request_token'); String basestring = 'POST'+'&'+EncodingUtil.urlencode('https://api.twitter.com/oauth/request_token','UTF-8')+'&'+EncodingUtil.urlencode(paramString,'UTF-8'); system.debug('**basestring'+basestring); String signkey = EncodingUtil.urlencode('##','UTF-8')+'&'; Blob OAuth = Crypto.generateMac('hmacSHA1' , Blob.valueOf(baseString) , blob.valueOf(signkey)); String final_signature = EncodingUtil.urlEncode(EncodingUtil.base64Encode(Oauth), 'UTF-8'); string authheader = 'OAuth oauth_callback ='+callBack+',oauth_nonce='+nounce+',oauth_signature='+final_signature+',oauth_signature_method="HMAC-SHA1",oauth_timestamp='+timestamp+',oauth_consumer_key='+consumerKey+',oauth_version="1.0"' ; req.setMethod('POST'); req.setHeader('Authorization', authheader); HttpResponse res = h.send(req); system.debug(res); }
** is my consumer key while ## is the consumer secret. But i am receiving status 401 error(authorization required)
Prithviraj_Chavan
Have you added https://api.twitter.com/oauth/ in remote site settings?
Starhunter
Yeah it is there . So it appears as https://api.twitter.com/ instead of https://api.twitter.com/oauth/ in remote site