400错误请求没有错误消息 - Twitter API

时间:2017-04-18 17:51:36

标签: java android api twitter

嘿伙计们!

我目前正在尝试创建一个使用Twitter API来获取用户时间线的应用。我目前陷入了一个特定的境界!我的用户已经登录,我已经收到了访问令牌和令牌密钥。我现在正在尝试向Twitter服务器发送获取请求。

我的问题是我总是收到400错误的请求错误代码,没有任何消息。

我正在使用Volley发送请求 - 这是代码

StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {


                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e(TAG, "Response Time: " + error.getNetworkTimeMs() + " ms");
                Log.e(TAG, "Code: " + error.networkResponse.statusCode);
                Log.e(TAG, "Data: " + new String(error.networkResponse.data));


            }
        }) {
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String> params = new HashMap<String, String>();

                Long tsLong = System.currentTimeMillis() / 1000;

                //I receive all the difference parts
                String consumerKey = context.getString(R.string.twitter_consumer_key);
                String nonce = GenerationHelper.generateNonce();
                String signature_method = "HMAC-SHA1";
                String timestamp = tsLong.toString();
                String token = sTwitterToken;
                String version = "1.0";

                // I use this list to pass the parameters to the function 
                // generating the signature
                List<String> param= new ArrayList<>();
                param.add("screen_name=" + username);
                param.add("count=" + count);
                param.add("oauth_token" + sTwitterToken);
                param.add("oauth_consumer_key=" + consumerKey);
                param.add("oauth_nonce=" + nonce);
                param.add("oauth_signature_method=" + signature_method);
                param.add("oauth_timestamp=" + timestamp);
                param.add("oauth_version=" + version);

                String signature = GenerationHelper.generateSignature(context, param, "POST", "https://api.twitter.com/1.1/statuses/user_timeline.json");


                // I create the header String
                StringBuilder paramBuilder = new StringBuilder();

                paramBuilder.append("oauth_consumer_key=\"" +  consumerKey + "\", ");
                paramBuilder.append("oauth_nonce=\"" +  nonce + "\", ");
                paramBuilder.append("oauth_signature=\"" + signature + "\", ");
                paramBuilder.append("oauth_signature_method=\"" + "HMAC-SHA1" + "\", ");
                paramBuilder.append("oauth_timestamp=\"" + timestamp + "\", ");
                paramBuilder.append("oauth_token=\"" + sTwitterToken + "\", ");
                paramBuilder.append("oauth_version=\"" + "1.0" + "\"");

                String credentialString = paramBuilder.toString();

                Log.d(TAG, credentialString);

                params.put("Authorization", "OAuth " + credentialString);

                return params;
            }
        };

我目前的回应是

Code: 400
Data: 

如果删除添加授权数据的行,我会收到回复

Code: 400
Data: {"errors":[{"code":215,"message":"Bad Authentication data."}]}

我很确定我不会受到限制,因为我每15分钟只发送10个请求。

有人知道我为什么遇到这个问题吗?

0 个答案:

没有答案