Twitter 登录失败

2023-12-06

当我在我的android应用程序中使用twitter登录时,我遇到了一些问题。错误日志如下:

09-05 15:38:48.492 22119-22119/sg.com.conversant.swiftlive E/Twitter: Failed to get request token com.twitter.sdk.android.core.TwitterApiException: HTTP request failed, Status: 401
   at com.twitter.sdk.android.core.Callback.onResponse(Callback.java:42)
   at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68)
   at android.os.Handler.handleCallback(Handler.java:733)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:136)
   at android.app.ActivityThread.main(ActivityThread.java:5118)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)
   at dalvik.system.NativeStart.main(Native Method)
09-05 15:38:48.552 22119-22119/sg.com.conversant.swiftlive E/Twitter: Authorization completed with an error com.twitter.sdk.android.core.TwitterAuthException: Failed to get request token
   at com.twitter.sdk.android.core.identity.OAuthController$1.failure(OAuthController.java:95)
   at com.twitter.sdk.android.core.internal.oauth.OAuth1aService$1.failure(OAuth1aService.java:194)
   at com.twitter.sdk.android.core.Callback.onResponse(Callback.java:42)
   at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68)
   at android.os.Handler.handleCallback(Handler.java:733)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:136)
   at android.app.ActivityThread.main(ActivityThread.java:5118)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)
   at dalvik.system.NativeStart.main(Native Method)
09-05 15:38:48.552 22119-22119/sg.com.conversant.swiftlive D/TwitterKit: Login with Twitter failure com.twitter.sdk.android.core.TwitterAuthException: Failed to get request token
   at com.twitter.sdk.android.core.identity.OAuthController$1.failure(OAuthController.java:95)
   at com.twitter.sdk.android.core.internal.oauth.OAuth1aService$1.failure(OAuth1aService.java:194)
   at com.twitter.sdk.android.core.Callback.onResponse(Callback.java:42)
   at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68)
   at android.os.Handler.handleCallback(Handler.java:733)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:136)
   at android.app.ActivityThread.main(ActivityThread.java:5118)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)
   at dalvik.system.NativeStart.main(Native Method)

顺便说一句,我已经在我的 Twitter 设置页面中设置了回调 Url。

你能帮我解决这个问题吗?非常感谢。

我使用自定义按钮来实现我的功能。一些代码如下:

private static final String TWITTER_KEY = "*******************";
private static final String TWITTER_SECRET = "*************";

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
    Fabric.with(this, new Twitter(authConfig));

    ButterKnife.inject(this);

    setCallback(new com.twitter.sdk.android.core.Callback<TwitterSession>() {
        @Override
        public void success(Result<TwitterSession> result) {
            AccountService ac = Twitter.getApiClient(result.data).getAccountService();
            Call<User> call   = ac.verifyCredentials(true,true);
            call.enqueue(new Callback<User>() {
                @Override
                public void onResponse(Call<User> call, Response<User> response) {
                    User user = response.body();
                    user_id = Long.toString(user.id);
                    nickName =  user.name;
                    avatar = user.profileImageUrl ;
                    if (user_id != null) {
                        System.out.println(user_id+":"+nickName+":"+avatar);
                    }
                }

                @Override
                public void onFailure(Call<User> call, Throwable t) {

                }
            });
        }

        @Override
        public void failure(TwitterException exception) {
            Log.d("TwitterKit", "Login with Twitter failure", exception);
        }
    });
}




View.OnClickListener clickListener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {

            case R.id.login_twitter_btn:
                getTwitterAuthClient().authorize(activity, callback);
                break;
        }

    }
};


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == getTwitterAuthClient().getRequestCode()) {
        getTwitterAuthClient().onActivityResult(requestCode,resultCode, data);
    }

}

public void setCallback(com.twitter.sdk.android.core.Callback<TwitterSession> callback) {
    if (callback == null) {
        throw new IllegalArgumentException("Callback cannot be null");
    }
    this.callback = callback;
}
TwitterAuthClient getTwitterAuthClient() {
    if (authClient == null) {
        synchronized (LoginActivity.class) {
            if (authClient == null) {
                authClient = new TwitterAuthClient();
            }
        }
    }
    return authClient;
}

填写 Twitter 设置开发帐户中的“回调 URL”字段。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Twitter 登录失败 的相关文章

随机推荐

  • 获取ActiveMQ中的队列名称列表

    我尝试过下面的代码来获取 ActiveMQ 中的队列列表 但它不起作用 我的 ActiveMQ 有 4 个队列 try ActiveMQConnection makeConnection URL start Set
  • WaitForElementClickable/可见 - Selenium C#

    我需要实现并修改我当前的方法来完成这两件事 等待元素可见 当前已实现 但仍使用预期状况这是过时的并且might be改变 等待可点击的元素 当我的测试运行时 它面临 加载圆圈 的问题 我按下按钮 在加载窗口之前 有一个加载程序 需要 1 到
  • 使用 Google App Engine 的 NDB 创建异步方法

    我想确保我了解如何创建微线程和异步方法 我拥有的是一个返回列表的方法 我希望从某个地方调用它 并立即允许进行其他调用 所以我有这个 future 1 get updates for user userKey aDate future 2 g
  • heroku 推送被拒绝,无法编译 Ruby 应用程序

    当我运行命令 git push f heroku 时 出现以下问题 获取存储库 完成 数物体 55 完成 增量压缩最多使用 4 个线程 压缩对象 100 30 30 完成 写入对象 100 35 35 9 26 KiB 0 字节 秒 完成
  • 数据库设计:识别外键有什么意义?

    我正在使用 MySQL Workbench 来建模我的数据库 在其中 我可以选择通过识别外键等来创建关系 这有什么意义 没有这些关系我就可以很好地运行我的查询 我的表确实有一个实际的外键列 我只是没有在 MySQL Workbench 中定
  • android 中如何检测来电掉线

    我正在编写一个应用程序 该应用程序在电话通话期间在后台运行 并在通话结束后将坐标记录到文件中 我知道 Android 电话 API 可以检测用户手动断开呼叫 纠正我 如果我错了 但我想知道服务断开是否是由于掉话造成的 有没有办法或API可以
  • 使用 SortableBindingList 的 DataGridView

    我有一个返回 IList 的函数 它是 DataGridView 的数据源 我了解到 DataGridView 不会对 IList 进行排序 我读这个 stackoverflow 问答我正在尝试实现 SortableBindingList
  • 通过将图像高度设置为容器高度来使图像适合其容器

    假设我有container a 它有一定的高度 以像素为单位 假设我在container a中有另一个container b 它是container a的80 现在假设我想将具有一定高度 以像素为单位 的图像放入容器中 b 如何使图像与co
  • 即使在 FormsAuthentication.SignOut() 之后 User.IsOnline = true

    我已在 web config 中设置 UserIsOnlineTimeWindow 2 然后我的 logout 函数已修改为 public ActionResult LogOff MembershipUser usr Membership
  • 使用D3,语义缩放可以应用于径向树吗?

    我用的是D3节点链接树 并且我在尝试对其应用语义缩放时遇到困难 我已经花了一些时间大惊小怪 试图让它发挥作用 所以我想我会在这里问 在我花更多时间之前看看它是否可能 我不确定语义缩放是否是线性的 仅此而已 编辑 工作解决方案 这是我的工作解
  • 如何使用 HttpURLConnection 在 Java 中等待 Expect 100-Continue 响应

    I am stuck使用 HttpURLConnection 向 Web 服务器发出 PUT http 请求 我有一些代码可以很好地发出 PUT 请求 并且我可以在标头中简单地包含 期望 100 继续请求属性 但是尽我所能尝试 我似乎无法让
  • Python:如果包含/不包含顺序相同,则从列表中删除子列表

    有没有办法从列表列表中删除重复的子列表 即使它们的顺序不同 那么我可以做类似 make 的事情吗 x 1 2 3 4 5 6 2 1 7 8 into x 1 2 3 4 5 6 7 8 是否有 itertools 函数或带有 for 循环
  • Swift 中优雅的“有界”方法

    我正在寻找一种更优雅的方法来为数字创建有界限制器 主要用于设置器 有很多技术可以确定一个值是否在界限内 但我没有看到任何本机函数来强制传入值符合这些界限 接受的答案here很接近 但我想限制这些值 而不是仅仅强制执行它们 这是我到目前为止所
  • 新的 GHC 功能——是我想象的吗?

    我发誓我在最近的一组 GHC 发行说明中看到了一个新功能 但现在我找不到任何参考资料 是我的错觉 还是这个功能真的存在 这是与加载不完整的模块有关 据我所知 它允许您关闭由于未定义变量而导致的编译错误 当然 在运行时 如果您尝试实际执行 这
  • 自调用函数 javascript

    我在 Firefox 和 Chrome 中编写了一个自调用函数 但它不会调用 我写了一些东西 大意是 function alert THE 自调用函数在当前浏览器中不起作用吗 我确实包含了页面上所有必要的标签和所有其他代码 自调用函数 实际
  • 如何递归地遍历 PyGtk 中的所有 Gtk 子项?

    我想获得主窗口的所有 Gtk 子对象的递归列表pygtk 我怎么做 注意这些 Python GTK 小部件名称 Python 递归和返回语句 这是一个函数 它是 PHP 函数的一个端口按名称获取后代 子 小部件 PHP GTK 社区 htt
  • Jboss 5,类加载器和多个类实例

    我的申请有问题 为了恢复这个问题 我必须将应用程序从 jboss 4 迁移到 jboss 5 在战争部署过程中 我遇到了这样的错误 java lang LinkageError loader constraint violation whe
  • 如何在 CUDA 中(有效地)打包位?

    我有一个字节数组 其中每个字节都是 0 或 1 现在我想将这些值打包成位 以便 8 个原始字节占用 1 个目标字节 原始字节 0 进入位 0 字节 1 进入位 1 ETC 到目前为止 我在内核中有以下内容 const uint16 t ti
  • pandas 数据帧计数唯一列表

    如果数据框中列的类型是int float or string 我们可以得到它的独特值columnName unique 但是 如果此列是一个列表 例如 1 2 3 我怎样才能得到unique本专栏的 我认为你可以将值转换为元组 然后uniq
  • Twitter 登录失败

    当我在我的android应用程序中使用twitter登录时 我遇到了一些问题 错误日志如下 09 05 15 38 48 492 22119 22119 sg com conversant swiftlive E Twitter Faile