gpt4 book ai didi

java - getUserTimeLine (Twitter4J) 仅适用于部分公众账号

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:26:56 27 4
gpt4 key购买 nike

我尝试使用 Twitter4J 库中的 getUserTimeline() 下载公共(public)推文,但它仅适用于某些帐户。例如:

twitter.getUserTimeline("twitter"); //works
twitter.getUserTimeline("codeacademy"); //fails

但是,我找不到两者之间的任何区别。我没有被他们关注,我也没有关注任何人。如果我在 Firefox 的隐私模式下访问他们的帐户,我就能看到他们的公开推文。当我用我的帐户登录时也是一样的。但是,如果我尝试使用 API,codeacademy 会以某种方式失败。我尝试使用参数“codeacademy”、“Codeacademy”调用它,即使使用 ID (716547158),也总是得到相同的结果。

我得到的错误信息是:

Exception in thread "main" 401:Authentication credentials (https://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid consumer key/secret, access token/secret, and the system clock is in sync.
{"request":"\/1.1\/statuses\/user_timeline.json?screen_name=codeacademy&include_my_retweet=true&include_entities=1&include_rts=1","error":"Not authorized."}

Relevant discussions can be found on the Internet at:
http://www.google.co.jp/search?q=00df323f or
http://www.google.co.jp/search?q=445fb8e5
TwitterException{exceptionCode=[00df323f-445fb8e5], statusCode=401, message=null, code=-1, retryAfter=-1, rateLimitStatus=RateLimitStatusJSONImpl{remaining=177, limit=180, resetTimeInSeconds=1384522960, secondsUntilReset=495}, version=3.0.4}
at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:162)
at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:81)
...etc...

我认为我可能错误地初始化了 Twitter 对象,但尝试了 3 种不同的选项并没有帮助。这是我尝试过的。

1)

在 twitter4j.properties 中(* 是那里的实际值 :))

oauth.consumerKey=***
oauth.consumerSecret=***
oauth.accessToken=***
oauth.accessTokenSecret=***

在Java中

Twitter twitter = TwitterFactory.getSingleton();

2)

在 twitter4j.properties 中

enableApplicationOnlyAuth=true
http.useSSL=true
oauth.consumerKey=***
oauth.consumerSecret=***
oauth2.tokenType=bearer
oauth2.accessToken=***

我通过调用和手动复制粘贴获得了 oauth2 值:

    OAuth2Token token = twitter.getOAuth2Token();
System.out.println(token.getAccessToken());
System.out.println(token.getTokenType());

在Java中

Twitter twitter = new TwitterFactory().getSingleton();

3)

在 twitter4j.properties 中

*nothing*

在Java中

    ConfigurationBuilder builder = new ConfigurationBuilder();
builder.setUseSSL(true);
builder.setApplicationOnlyAuthEnabled(true);

Twitter twitter = new TwitterFactory(builder.build()).getInstance();
twitter.setOAuthConsumer("***", "***");
OAuth2Token token = twitter.getOAuth2Token();

每次尝试都适用于 Twitter,没有一个适用于 CodeAcademy。

我一定做错了什么,但我无法找出是什么。任何建议将不胜感激:)。谢谢。

最佳答案

当你去这里时:https://twitter.com/codeacademy

它写在页面本身上,该用户的推文受到保护,只有关注者才能访问该帐户的推文。

因此,您可以获得推文:

  • 如果身份验证凭证为codeacademy被使用。
  • 或者,codeacademy 之后用户的身份验证凭证被使用。

关于java - getUserTimeLine (Twitter4J) 仅适用于部分公众账号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20002953/

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