gpt4 book ai didi

java - 使用 Scribe,OAuth Echo 似乎无法与 Twitpic 一起使用

转载 作者:行者123 更新时间:2023-12-01 15:15:01 25 4
gpt4 key购买 nike

我尝试使用 Scribe 上传照片,但似乎不起作用并出现错误:

Authentication challenged received is null

由于缺乏有关如何解决此问题的文档,我不知道。

相关代码为:

try{
OAuthRequest r = new OAuthRequest(Verb.POST, url);
ByteArrayOutputStream out = new ByteArrayOutputStream();
toSend.writeTo(out);
r.addPayload(out.toByteArray());
r.addHeader(toSend.getContentType().getName(), toSend.getContentType().getValue());

OAuth10aServiceImpl oauth = (OAuth10aServiceImpl)oauthImpl;
OAuthRequest sr = new OAuthRequest(Verb.GET, serviceProvider);
sr.addOAuthParameter(OAuthConstants.TOKEN, oauthToken.getToken());
sr.addOAuthParameter(OAuthConstants.REALM,"http://api.twitter.com/");
oauth.addOAuthParams(sr, client._oauthToken);

r.addHeader("X-Auth-Service-Provider",serviceProvider);
String oauthHeader = oauth.api.getHeaderExtractor().extract(sr);
r.addHeader("X-Verify-Credentials-Authorization", oauthHeader);

System.out.println(r.getHeaders().get("X-Verify-Credentials-Authorization"));

return r.send();
}catch(Exception e){
e.printStackTrace();
return null;
}

我认为它与消费者 key 有关,因为它似乎没有添加到签名中,但我不太确定到底发生了什么:/

如有任何帮助,我们将不胜感激

最佳答案

已修复。这是代码:

        OAuthRequest r = new OAuthRequest(Verb.POST, url);
ByteArrayOutputStream out = new ByteArrayOutputStream();
toSend.writeTo(out);
r.addPayload(out.toByteArray());
r.addHeader(toSend.getContentType().getName(), toSend.getContentType().getValue());

OAuth10aServiceImpl oauth = (OAuth10aServiceImpl)client._oauth;
OAuthRequest sr = new OAuthRequest(Verb.GET, serviceProvider);
oauth.signRequest(client._oauthToken, sr);

r.addHeader("X-Auth-Service-Provider",serviceProvider);
String oauthHeader = sr.getHeaders().get("Authorization");
r.addHeader("X-Verify-Credentials-Authorization", oauthHeader);

对于任何想知道其工作原理的人来说,toSend 是一个 HttpEntity,其中包含文件和其他 StringBody 部分以及 客户端。 _oauthToken 是一个 Token 对象。 r 是我对 twitpic 的请求,serviceProvider 是 Twitter API 验证凭据 url(在某些服务(如 yfrog)上会发生变化)

关于java - 使用 Scribe,OAuth Echo 似乎无法与 Twitpic 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11742980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com