我正在尝试使用Twitter API使用访问令牌进行推文。 当我使用API发布像“嘿伙计”这样的状态时,它会成功,我可以在我的时间轴上看到推文,但是当我发布“嘿家伙:)”时,我得到以下回复:
{errors=[{code=32, message=Could not authenticate you.}]}
这是成功的请求(发送“嘿伙计们”):
client.target("https://api.twitter.com/1.1/statuses/update.json")
.queryParam("status", "hey%20guys")
.request()
.post(javax.ws.rs.client.Entity.text("sdfsdf"))
.readEntity(Object.class);
这是失败的请求(发送“嘿伙计:)”):
client.target("https://api.twitter.com/1.1/statuses/update.json")
.queryParam("status", "hey%20guys%20%3A)")
.request()
.post(javax.ws.rs.client.Entity.text("sdfsdf"))
.readEntity(Object.class);
对于我使用http://meyerweb.com/eric/tools/dencoder/
的文字进行编码使用API发送请求时,请使用javax.ws.rs.client.Client。
我还尝试在Twitter API documentation中找到此问题的任何引用,但未发现任何相关内容。 他们的API包含一个发布的例子,但我也可以发布那个。
答案 0 :(得分:1)
如果对括号进行编码,则会修复它。
status = status.replaceAll("\\(","%28").replaceAll("\\)","%29");
client.target("https://api.twitter.com/1.1/statuses/update.json")
.queryParam("status", status)
.request()
...