当前位置: 首页 > 知识库问答 >
问题:

Twitter问题在android:: com.twitter.sdk.android.core.Twitter请求失败,状态: 400

姬康平
2023-03-14

您能否解决在我的android应用程序中集成twitter登录时出现的问题。

问题如下:

Twitter:未能获得请求令牌com.twitter.sdk.android.core.TwitterApiExcture: HTTP请求失败,状态: 400在com.twitter.sdk.android.core.Callback.on响应(Callback.java:42)在改造2.ExecutorCallAdapterFactory$ExecutorCallbackCall1美元1.run(ExecutorCallAdapterFactory.java:68)在android.os.Handler.handle回调(Handler.java:815)在android.os.Handler.dispatch消息(Handler.java:104)在android.os.ooper.loop(ooper.java:194)在android.app.ActivityThread.main(ActivityThread.java:5643)在java.lang.reflect.Method.invoke(本地方法)在java. lang.反射。方法调用(方法. java: 372)在com. android. interal. os。ZygoteInit$method odAndArgsCaller. run(ZygoteInit. java: 960)在com. android. interal. os。ZygoteInit. main(ZygoteInit. java: 755)

Twitter:授权完成,错误com.twitter.sdk.android.core.TwitterAuthExcture:无法在com.twitter.sdk.android.core.identity.OAuthController$1.failure(OAuthController.java:94)com.twitter.sdk.android.core.internal.oauth.OAuth1aService$1.failure(OAuth1aService.java:191)在com.twitter.sdk.android.core.Callback.on响应(Callback.java:42)在改造2。ExecutorCallAdapterFactory$ExecutorCallbackCall1美元1.run(ExecutorCallAdapterFactory.java:68)在android.os.Handler.handle回调(Handler.java:815)在android.os.Handler.dispatch消息(Handler.java:104)在android.os.Looper.loop(Loop. java: 194)在android. app.ActivityThread. main(ActivityThread. java: 5643)在java. lang.反射。方法调用(本机方法)在java. lang.反射。方法html" target="_blank">调用(方法. java: 372)在com. android. interal. os。ZygoteInit$method odAndArgsCaller. run(ZygoteInit. java: 960)在com. android. interal. os。ZygoteInit. main(ZygoteInit. java: 755)

这是我的代码:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TwitterConfig config = new TwitterConfig.Builder(this)
            .logger(new DefaultLogger(Log.DEBUG))
            .twitterAuthConfig(new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET))
            .debug(true)
            .build();
    Twitter.initialize(config);
    setContentView(R.layout.layout_list);

    nameit = (TextView) findViewById(R.id.nameit);
    loginButton = (TwitterLoginButton) findViewById(R.id.login_button);

    loginButton.setCallback(new Callback<TwitterSession>() {
        @Override
        public void success(Result<TwitterSession> result) {
            // Do something with result, which provides a TwitterSession for making API calls
            try {
                TwitterSession session = TwitterCore.getInstance().getSessionManager().getActiveSession();
                TwitterAuthToken authToken = session.getAuthToken();
                String token = authToken.token;
                String secret = authToken.secret;
                TwitterSession session1 = result.data;
                String name = session1.getUserName();
                nameit.setText("Welcome " + name);
                Log.e("DATTTA", session.getUserId() + "");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        @Override
        public void failure(TwitterException exception) {
            // Do something on failure
        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    loginButton.onActivityResult(requestCode, resultCode, data);
}

抱歉英语不好,提前感谢。

共有2个答案

姬成荫
2023-03-14

我也有同样的问题,我用以下方法解决了它

1) 检查回调URL并添加额外的回调URL,即

twittersdk://

添加上面的网址,因为如果我们没有安装twitter应用程序,twittersdk试图在Web视图中打开,所以我们必须添加这个回调网址

2)添加此代码之前的SetContentView方法在onCread

//Initialize twitter SDK
TwitterConfig config = new TwitterConfig.Builder(this)
                .logger(new DefaultLogger(Log.DEBUG))
                .twitterAuthConfig(new TwitterAuthConfig(YOUR_CONSUMER_API_KEY, YOUR_CONSUMER_API_SECRET))
                .debug(true)
                .build();
Twitter.initialize(config);
薄欣怿
2023-03-14

我有同样的问题,我通过以下步骤解决了它。

转到Twitter应用程序管理单击您当前正在使用的“应用程序”单击“设置”选项卡

1)回调URL:插入任何有效的URL,如http://www.google.com回调URL用于在您的设备中未安装twitter应用程序时在浏览器上重定向您。

2) 启用回调锁定(建议启用回调锁定以确保应用程序无法覆盖回调URL):验证是否未选中该选项

3)无需在应用程序类中初始化twitter sdk,而是如下所示初始化它:

    private void init(){

    TwitterAuthConfig authConfig = new TwitterAuthConfig(getResources().getString(R.string.consumer_key), getResources().getString(R.string.secrete_key));
    TwitterConfig config = new TwitterConfig.Builder(this)
            .logger(new DefaultLogger(Log.DEBUG))
            .twitterAuthConfig(authConfig)
            .debug(true)
            .build();
    Twitter.initialize(config);

}

谢谢

 类似资料:
  • 在过去的几天里,我一直在玩弄twitter应用编程接口,但似乎无法请求“请求令牌”。(流程A) 在twitterapi上,我应该达到以下终点(https://api.twitter.com/oauth/request_token)如果请求成功,则应向我提供一个,和)(应与我通过的匹配)。我试图只使用我的私钥,但这当然是失败的。我对如何生成此请求的理解是否错误? 我相信我的问题是如何生成。阅读twi

  • 这是我的同意模式 这是同意控制器获取声明 这是声明后的同意 同意html thymeleaf表单是 提交表格后。我得到这个错误 HTTP状态500-请求处理失败;嵌套异常是org.thymeleaf.exceptions.TemplateProcessing异常:异常评估SpringEL表达式:"user.providers"(提供者/createOrUpdateConentForm 组织。spr

  • 问题内容: 以下函数给出验证错误而不是令牌: 无法验证oAuth签名和令牌 问题答案: 以下是到目前为止我整理的内容,它有效:-)

  • 我正在尝试登录一个网站(https://dashboard.ngrok.com/user/login)使用jsoup。我对GET请求没有任何问题,但当我尝试使用凭证执行POST请求时,我收到: HTTP错误获取URL。状态=400 我尝试为请求设置一个更好的头,使用我在连接发出POST请求时发送的相同参数。 我也尝试过这种类型的请求: 结果显示: 线程“main”组织中出现异常。jsoup。Htt

  • 问题内容: 来自Android上我的PhoneGap / Cordova应用的Ajax HTTPS请求莫名其妙地失败,状态为= 0。仅在使用释放键对应用程序进行签名(即从ADT导出)时显示,而在使用调试键进行签名(直接在模拟器或电话中运行)时不显示。 总是输出 不管我是从Play商店还是通过实用工具安装应用程序,都没有关系。我认为它可以与证书连接,因为并非所有HTTPS域都以这种方式失败。 问题答

  • 鸿蒙arkts 请求失败了 mock 请求地址:https://dummyjson.com/quotes axios 发起请求 官网Http库