function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
StarhunterStarhunter 

twitter request token

I am trying to obtain a request token from twitter by using the following code:
 
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_ChavanPrithviraj_Chavan
Have you added https://api.twitter.com/oauth/ in remote site settings?
StarhunterStarhunter
Yeah it is there . So it appears as https://api.twitter.com/ instead of https://api.twitter.com/oauth/ in remote site