首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scribe + twitter >不能从空对象获得字符串

scribe + twitter >不能从空对象获得字符串
EN

Stack Overflow用户
提问于 2014-01-28 22:04:54
回答 2查看 739关注 0票数 2

我尝试在facebook和twitter上使用抄写器进行授权。facebook没有问题。但当我尝试

requestToken = service.getRequestToken()

我得到了推特

无法从空对象获取字符串。

代码语言:javascript
复制
> ru.myx.ae3.exec.ExecErrorDefault
    > Cannot get String from a null object
    > java.lang.IllegalArgumentException
      : org.scribe.utils.Preconditions.check(Preconditions.java:84)
      : org.scribe.utils.Preconditions.checkNotNull(Preconditions.java:31)
      : org.scribe.utils.StreamUtils.getStreamContents(StreamUtils.java:22)
      : org.scribe.model.Response.parseBodyContents(Response.java:43)
      : org.scribe.model.Response.getBody(Response.java:69)
      : org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:60)
      : org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:40)
      : org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:45)
      : sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      : sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      : sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      : java.lang.reflect.Method.invoke(Method.java:606)

谁能帮我修好它吗?

EN

回答 2

Stack Overflow用户

发布于 2014-02-01 19:22:46

幸运的是,Scribe具有SSL支持,您只需要在构建器内使用正确的TwitterAPI类(用于SSL连接的类):

代码语言:javascript
复制
final OAuthService service = new ServiceBuilder()
.provider(**TwitterApi.SSL.class**)
.apiKey(...)
.apiSecret(...)
.callback(...)
.build();

为我工作就像一种魅力:)

票数 4
EN

Stack Overflow用户

发布于 2014-01-29 07:26:05

我也遇到过这个问题..。

我所做的就是创建了一个自定义的TwitterApi,类似于bellow。出于某种原因,twitter不再支持http,而只支持ssl。见下文。

代码语言:javascript
复制
import org.scribe.builder.api.DefaultApi10a;
import org.scribe.model.Token;


public class CustomTwitterApi extends DefaultApi10a {

private static final String AUTHORIZATION_URL = "https://api.twitter.com/oauth/authorize?oauth_token=%s";

public String getRequestTokenEndpoint() {
    return "https://api.twitter.com/oauth/request_token";
}

public String getAccessTokenEndpoint() {
    return "https://api.twitter.com/oauth/access_token";
}

public String getAuthorizationUrl(Token requestToken) {
    return String.format(AUTHORIZATION_URL, requestToken.getToken());
}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21417920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档