我正在使用带有 google appengine (java) 的路标向 twitter 发送状态更新。
OAuthConsumer consumer = new DefaultOAuthConsumer("AAA",
"BBB");
consumer.setTokenWithSecret("CCC", "DDD");
URL url = new URL("http://api.twitter.com/1.1/statuses/update.json?status=abc");
HttpURLConnection request;
request = (HttpURLConnection) url.openConnection();
consumer.sign(request);
request.setRequestMethod("POST");
request.connect();
InputStream response = request.getInputStream();
int a = response.read();
while (a!=-1){
resp.getOutputStream().write(a);
a = response.read();
}
您可以看到听到我将 post 参数像 get 请求一样放在 url 中,其他人提到这对他们有用,我也尝试像您应该做的那样将它们放在消息的正文中。但我总是得到{"errors":[{"message":"Could not authenticate you","code":32}]}。我的令牌和秘密令牌都是正确的,但如果不是,我会得到 {"errors":[{"message":"Invalid or expired token","code":89}]} 的不同错误。
我认为路标没有在整个身体(包括参数)上执行 oauth 过程,所以它给出了错误。
有任何想法吗?