签名无效.预期的签名基本字符串,JAVA

我们正在使用这段代码通过oAuth向aweber发送请求

long unixTime = System.currentTimeMillis() / 1000L;
OAuthRequest request1 = new OAuthRequest(Verb.GET,"https://api.aweber.com/1.0/accounts/1111/lists/1111/subscribers",service);
request1.addBodyParameter("ws.op","create");
request1.addBodyParameter("email","account@gmail.com");
request1.addBodyParameter("name","ankur");
request1.addBodyParameter("oauth_token_secret","mysecret");
request1.addBodyParameter("oauth_token","mytoken");
request1.addBodyParameter("oauth_consumer_key","mykey");
request1.addBodyParameter("oauth_signature_method","HMAC-SHA1");
request1.addBodyParameter("oauth_nonce","secret");
request1.addBodyParameter("oauth_timestamp",String.valueOf(unixTime));

service.signRequest(accesstoken,request1);
Response response1 = request1.send();
// Create a reader to read Twitter's stream
BufferedReader reader1 = new BufferedReader(new InputStreamReader(response1.getStream()));

String line;
while ((line = reader1.readLine()) != null) {
    System.out.println(line);
}      

但我们正在回应这个问题

{
    "error": {
        "status": 401,"documentation_url": "https://labs.aweber.com/docs/troubleshooting#unauthorized","message": "Invalid signature. Expected signature base string: GET%26https%3A%2F%2Fapi.aweber.com%2F1.0%2Faccounts%2F1111%2Flists%2F1111%2Fsubscribers%26oauth_consumer_key%3Dmykey%26oauth_nonce%3Dnonce%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1461676770%26oauth_token%3Dmytoken%26oauth_version%3D1.0%20https%3A%2F%2Flabs.aweber.com%2Fdocs%2Ftroubleshooting%23unauthorized","type": "UnauthorizedError"
    }
}

签名无效.预期的签名基本字符串

我检查了我的签名,同样如此.不知道为什么它显示不同.

更新 – 1:

很多人说我的密钥和访问令牌无效,但在我的代码中,我试图击中另一个后,我会点击第一个帐户URL.

像这样

  OAuth1Accesstoken  accesstoken= new OAuth1Accesstoken("oauth_token","oauth_token_secret","oauth_token_secret=oauth_token_secret&oauth_token=oauth_token");
  final OAuthRequest request = new OAuthRequest(Verb.GET,ACCOUNT_RESOURCE_URL,service);
  service.signRequest(accesstoken,request);

  final Response response = request.send();
  System.out.println("Got it! Lets see what we found...");
  System.out.println();
  System.out.println(response.getBody());

  System.out.println();
  System.out.println("Thats it man! Go and build something awesome with aweber and ScribeJava! :) 11111111");

这是日志

  Got it! Lets see what we found...

 {"total_size": 1,"start": 0,"entries": [{"http_etag": "\"8c4c161ee1fd3dfg596911c82e9f2feff145907dec2-ca5feee2b7fbb6febfca8af554fg1541ea960aaedb\"","lists_collection_link": "https://api.aweber.com/1.0/accounts/xxxx/lists","self_link": "https://api.aweber.com/1.0/accounts/xxxx","resource_type_link": "https://api.aweber.com/1.0/#account","id": xxxx,"integrations_collection_link": "https://api.aweber.com/1.0/accounts/xxxx/integrations"}],"resource_type_link" : "https://api.aweber.com/1.0/#accounts"}

在此之后我运行我的顶级代码,那么我的密钥有什么问题,那么为什么它的代码的第一部分工作呢?

最佳答案
根本原因分析:Invalid signature

当您的请求的签名与我们预期的签名不匹配时,会引发此错误.此错误的常见原因是不正确或丢失令牌密钥(使用者,请求令牌或访问令牌)或应用程序中的错误OAuth 1.0A实现.

这里访问令牌有一个到期时间.在到期时间之后,访问令牌将无法工作.

还有另一个限制.将发布的刷新令牌数量有限制;每个客户端/用户组合一个限制,所有客户端的每个用户一个限制.

因此,在您的情况下,您可能已经超出了创建刷新令牌的限制.

对于解决方案,您可以按照我的另一个答案:Google Play Developer API – Query purchase token returns Invalid Value

解决您的问题,您可以按照以下步骤操作:

>登录您的帐户,验证您的消费者秘密是否正确
实验室帐户并将消费者密钥复制并粘贴到您的帐户中
应用.
>发出新的请求令牌和/或访问令牌,然后重试.
>验证您的应用程序是否正确实施OAuth 1.0A
关于服务器基本字符串的标准.
> Refer to RFC5849 OAuth 1.0A Specification Section 3.4.1 for
更多细节.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


应用场景 C端用户提交工单、工单创建完成之后、会发布一条工单创建完成的消息事件(异步消息)、MQ消费者收到消息之后、会通知各处理器处理该消息、各处理器处理完后都会发布一条将该工单写入搜索引擎的消息、最终该工单出现在搜索引擎、被工单处理人检索和处理。 事故异常体现 1、异常体现 从工单的流转记录发现、
线程类,设置有一个公共资源 package cn.org.chris.concurrent; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * @Descrip
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量
Java 9中JShell中的不同启动脚本是什么?
使用Java的位填充错误检测技术
java中string是什么
如何使用Java中的JSON-lib API将Map转换为JSON对象?
Java菜单驱动程序以检查数字类型
使用Junit的Maven项目 - 检查银行账号
JAVA编程基础
在Java中使用throw、catch和instanceof来处理异常
在Java中,将数组分割为基于给定查询的子数组后,找到子数组的最大子数组和
如何在Java中从给定的字符串中删除HTML标签?
在PHP中,IntlChar getBlockCode()函数的翻译如下:
如何在Android中实现按下返回键再次退出的功能?
如何使用Java中的流式API解析JSON字符串?
Java中的模式类