Scribe Java Twitter发布错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scribe Java Twitter发布错误相关的知识,希望对你有一定的参考价值。
我正在写一个在Glassfish上运行的发布引擎,它从数据库队列发布到Twitter。
我正在使用Scribe Java API来执行此操作。我遇到了从signRequest
执行OAuthService
的问题。我有一个有效的访问令牌,并有发送的推文 - 下面是我的错误发生的代码。
String urlTweet = "https://api.twitter.com/1.1/statuses/update.json?status=Tweet To Post";
OAuthRequest tmpRequest = new OAuthRequest(Verb.POST, urlTweet);
oAuthService.signRequest(accessToken, tmpRequest); // THIS LINE THERE IS AN ERROR
response = tmpRequest.send();
但是我在上面显示的行上收到错误。这是我得到的堆栈跟踪 - 部分已被匿名编辑。
org.scribe.exceptions.OAuthSignatureException: Error while signing string: POST&https%3A%2F%2Fapi.twitter.com%2F1.1%2Fstatuses%2Fupdate.json&[redacted]
at org.scribe.services.HMACSha1SignatureService.getSignature(HMACSha1SignatureService.java:36)
at org.scribe.oauth.OAuth10aServiceImpl.getSignature(OAuth10aServiceImpl.java:151)
at org.scribe.oauth.OAuth10aServiceImpl.addOAuthParams(OAuth10aServiceImpl.java:75)
at org.scribe.oauth.OAuth10aServiceImpl.signRequest(OAuth10aServiceImpl.java:126)
at [redacted].TWScribePost.postTwitter(TWScribePost.java:141)
at [redacted].Post.TWScribePost.post(TWScribePost.java:42)
at [redacted].Post.PostingEng$TWReadQueue.run(PostingEng.java:137)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
Caused by: java.security.NoSuchAlgorithmException: Algorithm HmacSHA1 not available
at javax.crypto.Mac.getInstance(DashoA13*..)
at org.scribe.services.HMACSha1SignatureService.doSign(HMACSha1SignatureService.java:43)
at org.scribe.services.HMACSha1SignatureService.getSignature(HMACSha1SignatureService.java:32)
... 8 more
答案
尝试使用response = oAuthService.execute(tmpRequest);
而不是response = tmpRequest.send();
以上是关于Scribe Java Twitter发布错误的主要内容,如果未能解决你的问题,请参考以下文章
org.scribe.exceptions.OAuthException:响应正文不正确。无法从中提取令牌和秘密:'无效的请求令牌'
如何从 Web 应用程序访问仅限身份验证的 Twitter API 方法
从 Java 到 MySQL 的 Twitter 文本:utf8mb4 SQL 错误“reportcharsetnr(”