0

我正在使用带有 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 过程,所以它给出了错误。

有任何想法吗?

4

1 回答 1

0

事实证明,路标对于应用引擎来说不是一个很好的库。它中的一些错误阻止它在没有某些错误的情况下工作。Scribe 是与 Appengine Java 一起使用的更好的 Oauth 工具。

于 2013-10-10T13:58:52.380 回答