我们正在使用https://www.googleapis.com/appsmarket/v2/upgradableApp将oauth1.0应用迁移到oauth2.0应用。
我们指的是https://developers.google.com/apps-marketplace/v1migratev2
在拨打电话时我们正在接收"无效的OAuth标头"错误(401)
我们正在单独使用消费者密钥和消费者秘密。我们没有使用任何令牌。
我确信我们在这里遗漏了一些东西。但不确定它是什么。任何指向这个问题的指针都会对我们有所帮助。
提前致谢。
以下是示例代码
HttpClient client = new HttpClient();
PutMethod method = new PutMethod("https://www.googleapis.com/appsmarket/v2/upgradableApp///");
method.addRequestHeader("Authorization", "oAuth");
method.addRequestHeader("Consumer Key","");
method.addRequestHeader("Consumer Key Secret","");
try {
int status = client.executeMethod(method);
System.out.println("status:" + status);
System.out.println("response:" + method.getResponseBodyAsString());
}
catch (HttpException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
状态::: 401 响应:: {"错误" {"错误":[{"结构域":"全球""理由&#34 ;:" authError"," message":"无效的OAuth>报头""的locationType":"头""位置":"授权"}],"代码&#34 ;:401,"消息":"在 有效的OAuth标题"}}
答案 0 :(得分:1)
我们尝试使用以下代码,使用适用于Google的OAuth 1.0 API,它运行良好。
OAuthRequest request = new OAuthRequest(Verb.PUT, api.getUpdateDomainEndpoint(listingId, chromeWSId, domain));
request.addOAuthParameter(OAuthConstants.TIMESTAMP, api.getTimestampService().getTimestampInSeconds());
request.addOAuthParameter(OAuthConstants.NONCE, api.getTimestampService().getNonce());
request.addOAuthParameter(OAuthConstants.CONSUMER_KEY, config.getApiKey());
request.addOAuthParameter(OAuthConstants.SIGN_METHOD, api.getSignatureService().getSignatureMethod());
request.addOAuthParameter(OAuthConstants.VERSION, getVersion());
request.addOAuthParameter(OAuthConstants.SIGNATURE, getSignature(request, token));
String oauthHeader = api.getHeaderExtractor().extract(request);
request.addHeader(OAuthConstants.HEADER, oauthHeader);