使用twitter4j库时未发现身份验证挑战

里特什·古尼(Ritesh Gune)

我目前正在将Twitter集成到我的android应用程序中。我在一定程度上成功地整合了它。但是,No authentication challenges found在以下情况下我得到了例外。

  1. 我使用App-only authentication(无需登录Twitter)从Twitter获取公共供稿。我成功地获取了它们。
  2. 当我尝试回复或转发或将其标记为收藏时,我会检查用户是否已登录,如果尚未登录,则尝试先登录然后进行回复或转发。
  3. 但是我在尝试仅登录时遇到了上述异常,所以我没有收到回复或转发。

注意:如果我不使用App-only authentication并选择直接登录(无需获取公共供稿),则可以正常使用,并且可以登录。

以下是堆栈跟踪:

11-14 19:33:03.597: W/System.err(3305): No authentication challenges found
11-14 19:33:03.667: W/System.err(3305): Relevant discussions can be found on the Internet at:
11-14 19:33:03.667: W/System.err(3305):     http://www.google.co.jp/search?q=9ddbeb3a or
11-14 19:33:03.727: W/System.err(3305):     http://www.google.co.jp/search?q=937eec8d
11-14 19:33:03.747: W/System.err(3305): TwitterException{exceptionCode=[9ddbeb3a-937eec8d c8a7b39b-dc5ea0d9], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.4}
11-14 19:33:03.797: W/System.err(3305):     at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:177)
11-14 19:33:03.857: W/System.err(3305):     at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
11-14 19:33:03.897: W/System.err(3305):     at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:98)
11-14 19:33:03.957: W/System.err(3305):     at twitter4j.auth.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:145)
11-14 19:33:04.097: W/System.err(3305):     at twitter4j.auth.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:165)
11-14 19:33:04.107: W/System.err(3305):     at twitter4j.TwitterBaseImpl.getOAuthAccessToken(TwitterBaseImpl.java:381)

编辑:

以下是我用于根据用户是否登录来切换配置的代码。

private TwitterInstance(boolean withLoginConfig) {

        ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
        configurationBuilder
                .setOAuthConsumerKey(STAConstants.TWITTER_CONSUMER_KEY);
        configurationBuilder
                .setOAuthConsumerSecret(STAConstants.TWITTER_CONSUMER_SECRET);
        // configuration required to fetch feeds without login.
        if (!withLoginConfig) {
            configurationBuilder.setUseSSL(true);
            // IMPORTANT: set T4J to use App-only authentication
            configurationBuilder.setApplicationOnlyAuthEnabled(true);
            configurationBuilder.setOAuth2TokenType(getOAuth2Token()
                    .getTokenType());
            configurationBuilder.setOAuth2AccessToken(getOAuth2Token()
                    .getAccessToken());
        }
        Configuration configuration = configurationBuilder.build();
        twitterFactory = new TwitterFactory(configuration);
        twitter = twitterFactory.getInstance();
        requestToken = null;
    }

我也在SO和其他站点上搜索了解决方案,但没有得到任何解决方案。

任何帮助都将受到高度赞赏。

里特什·古尼(Ritesh Gune)

我做了几件事,最后发现自己回答了我的问题。因此在这里发布。

问题:未找到身份验证挑战

原因:登录后我没有发送信息AccessTokenAccessTokenSecret处于配置状态。因此,它没有获取身份验证数据。

解决方案 :

步骤1:我使用App-only authentication(无需登录Twitter)从Twitter获取公共供稿。我成功地获取了它们。为此,我BearerToken在配置中使用如下:

   ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
   configurationBuilder.setOAuthConsumerKey(Constants.TWITTER_CONSUMER_KEY);
   configurationBuilder.setOAuthConsumerSecret(Constants.TWITTER_CONSUMER_SECRET);
   configurationBuilder.setUseSSL(true);
   // IMPORTANT: set T4J to use App-only authentication
   configurationBuilder.setApplicationOnlyAuthEnabled(true);
   configurationBuilder.setOAuth2TokenType(getOAuth2Token().getTokenType());
   configurationBuilder.setOAuth2AccessToken(getOAuth2Token().getAccessToken());

步骤2:当我尝试回复或转发或将其标记为收藏时,我检查用户是否已登录,如果尚未登录,则尝试先登录然后进行回复或转发。为此,我使用以下配置。

ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.setOAuthConsumerKey(Constants.TWITTER_CONSUMER_KEY);
configurationBuilder.setOAuthConsumerSecret(Constants.TWITTER_CONSUMER_SECRET);

这将给我RequestToken,反过来又给我AccessTokenAccessTokenSecret

步骤3:此后,我对后续请求使用以下配置,没有任何问题。

ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.setOAuthConsumerKey(Constants.TWITTER_CONSUMER_KEY);
configurationBuilder.setOAuthConsumerSecret(Constants.TWITTER_CONSUMER_SECRET);
configurationBuilder.setOAuthAccessToken(getAccessToken()); // from sharedPreferences
configurationBuilder.setOAuthAccessTokenSecret(getAccessTokenSecret()); // from sharedPreferences                           

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用twitter4j库时未发现身份验证挑战

来自分类Dev

Twitter4j身份验证凭据丢失

来自分类Dev

Twitter4j引发401身份验证错误

来自分类Dev

Twitter4j身份验证凭据丢失

来自分类Dev

使用Mulesoft(Mule 4)使用IBM MQ时出现身份验证问题

来自分类Dev

如何使用Twitter4j获得没有用户身份验证的Twitter公共时间表?

来自分类Dev

使用 JSessionId 实现身份验证

来自分类Dev

使用承载身份验证时未发送正文

来自分类Dev

尝试使用Flask在MongoDB中插入字段时出现身份验证错误

来自分类Dev

使用 FCM gem RAILS 发送通知时出现身份验证错误

来自分类Dev

Twitter4j计算发现的推文数量

来自分类Dev

配置Jenkins与Git Bitbucket存储库一起使用时出现身份验证错误

来自分类Dev

如何实现身份验证保护

来自分类Dev

在 NodeJS 代码中使用 SharedKeyLite 更新 Azure 表存储中的数据时出现身份验证错误

来自分类Dev

如何使用twitter4j库在一个请求中搜索多个Twitter ID

来自分类Dev

如何使用twitter4j库在一个请求中搜索多个Twitter ID

来自分类Dev

Xcode-使用SSH身份验证添加存储库时,身份验证失败错误

来自分类Dev

为什么在使用ember-simple-auth时还原未发送事件身份验证成功?

来自分类Dev

使用neo4j进行Spring身份验证

来自分类Dev

使用 ADAL4J 的 OneDrive 身份验证

来自分类Dev

尝试启动pymongo中的副本集时出现身份验证错误

来自分类Dev

通过PHPMailer发送电子邮件时出现身份验证错误

来自分类Dev

通过Spring Boot应用访问mongodb时出现身份验证错误

来自分类Dev

将文件上传到Firebase存储时出现身份验证错误

来自分类Dev

尝试启动pymongo中的副本集时出现身份验证错误

来自分类Dev

从远程主机连接到MongoDB时出现身份验证错误

来自分类Dev

上传文件或发送电子邮件时出现身份验证错误

来自分类Dev

使用ROAuth的twitteR代理身份验证

来自分类Dev

使用 R 进行 Twitter 身份验证

Related 相关文章

  1. 1

    使用twitter4j库时未发现身份验证挑战

  2. 2

    Twitter4j身份验证凭据丢失

  3. 3

    Twitter4j引发401身份验证错误

  4. 4

    Twitter4j身份验证凭据丢失

  5. 5

    使用Mulesoft(Mule 4)使用IBM MQ时出现身份验证问题

  6. 6

    如何使用Twitter4j获得没有用户身份验证的Twitter公共时间表?

  7. 7

    使用 JSessionId 实现身份验证

  8. 8

    使用承载身份验证时未发送正文

  9. 9

    尝试使用Flask在MongoDB中插入字段时出现身份验证错误

  10. 10

    使用 FCM gem RAILS 发送通知时出现身份验证错误

  11. 11

    Twitter4j计算发现的推文数量

  12. 12

    配置Jenkins与Git Bitbucket存储库一起使用时出现身份验证错误

  13. 13

    如何实现身份验证保护

  14. 14

    在 NodeJS 代码中使用 SharedKeyLite 更新 Azure 表存储中的数据时出现身份验证错误

  15. 15

    如何使用twitter4j库在一个请求中搜索多个Twitter ID

  16. 16

    如何使用twitter4j库在一个请求中搜索多个Twitter ID

  17. 17

    Xcode-使用SSH身份验证添加存储库时,身份验证失败错误

  18. 18

    为什么在使用ember-simple-auth时还原未发送事件身份验证成功?

  19. 19

    使用neo4j进行Spring身份验证

  20. 20

    使用 ADAL4J 的 OneDrive 身份验证

  21. 21

    尝试启动pymongo中的副本集时出现身份验证错误

  22. 22

    通过PHPMailer发送电子邮件时出现身份验证错误

  23. 23

    通过Spring Boot应用访问mongodb时出现身份验证错误

  24. 24

    将文件上传到Firebase存储时出现身份验证错误

  25. 25

    尝试启动pymongo中的副本集时出现身份验证错误

  26. 26

    从远程主机连接到MongoDB时出现身份验证错误

  27. 27

    上传文件或发送电子邮件时出现身份验证错误

  28. 28

    使用ROAuth的twitteR代理身份验证

  29. 29

    使用 R 进行 Twitter 身份验证

热门标签

归档