API обновления/статуса Twitter работает на postman и не работает в коде Android

#android #twitter #oauth #postman #twitter-oauth

Вопрос:

Я интегрирую статусы Twitter/update.json API в приложение для Android. Я использую модернизацию для API. Этот API необходим OAuth 1.0 , и я генерирую все необходимые значения и вызываю API, который дает мне этот ответ:

 {"errors":[{"code":89,"message":"Invalid or expired token."}]}
 

Когда я передаю все необходимые значения почтальону, он работает.

Вот как я передаю значения почтальону (форма-URL-код):

введите описание изображения здесь

Ниже приведена строка, которую я сгенерировал в коде и передал в заголовке в Authorization

 OAuth oauth_consumer_key="55pQiiN7hMwSEKMDqc0wYcH",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1617275741",oauth_nonce="675889204f9748a98a7f24c8c313d9bf",oauth_version="1.0",oauth_signature="vuH+pCkPNNEr9CnNzT6wXCj2k=",oauth_token="2997731-kzHvqPH2NeYnHOV6tFB1wtvXlk1qzUFk3pqUHA",oauth_token_secret="lDOo0Ozyjq2ngdGEr52IOPGxxbsXbWACxZEXLrvlcsO5p",oauth_consumer_secret="tqMmRHJ4kGbykxbOaYD1ZHJgfsKfFSCySpUOGpnIWWH6KjJ"
 

И это дает мне ошибку, как упоминалось выше.

Как я создаю подпись:

 private static String computeSignature(String baseString, String keyString) throws GeneralSecurityException, UnsupportedEncodingException {
        SecretKey secretKey = null;

        byte[] keyBytes = keyString.getBytes();
        secretKey = new SecretKeySpec(keyBytes, "HmacSHA1");

        Mac mac = Mac.getInstance("HmacSHA1");
        mac.init(secretKey);

        byte[] text = baseString.getBytes();

        return new String(Base64.encodeBase64(mac.doFinal(text))).trim();
    } 
 

Я что-нибудь упускаю? Как я могу устранить эту ошибку?