1

我正在开发一个带有 Twitter 登录的应用程序。当我检查 Fabric 时,它不包含 Twitter 登录,因为它不再可以通过 Fabric 获得,所以我尝试使用 Twitter Kit ( Twitter Kit Link ) 来实现它。我在我的应用程序上安装了 Twitter Kit,当我尝试运行应用程序时它崩溃了

Twitter.sharedInstance().startWithConsumerKey(<key>, consumerSecret: <secret>)

错误:以 NSException 类型的未捕获异常终止

任何解决方案...

4

2 回答 2

0

试试这个代码

在你的项目中添加这个 gradle 行

compile 'com.twitter.sdk.android:twitter:3.0.0'

写在你的活动/片段中

//Your Custom Button
          private ivTwitter;
         //Twitter Login Button
          private TwitterLoginButton ivTwitterMain;

          //init twitter
 TwitterConfig config = new TwitterConfig.Builder(this)
                .logger(new DefaultLogger(Log.DEBUG))
                .twitterAuthConfig(new TwitterAuthConfig(Const.CONSUMER_KEY, Const.CONSUMER_SECRET))
                .debug(false)
                .build();
        Twitter.initialize(config);

        //find your button
      ivTwitter = (ImageView) findViewById(R.id.ivTwitter);
      ivTwitterMain = (TwitterLoginButton)findViewById(R.id.ivTwitterMain); 

      //twitter login callback
      ivTwitterMain.setCallback(new Callback<TwitterSession>() {
                    @Override
                    public void success(Result<TwitterSession> result) {
                        // Do something with result, which provides a TwitterSession for making API calls
                        TwitterSession session = TwitterCore.getInstance().getSessionManager().getActiveSession();
                        TwitterAuthToken authToken = session.getAuthToken();
                        String token = authToken.token;
                        String secret = authToken.secret;

                        getTwitterUserProfile(session);

                    }

                    @Override
                    public void failure(TwitterException exception) {
                        // Do something on failure
                        Log.d(Const.FRAGMENT_REGISTER, exception.getMessage());
                    }

                });

获取TwitterUserProfile 代码

private void getTwitterUserProfile(TwitterSession session) {
        AccountService accountService = new TwitterApiClient(session).getAccountService();
        Call<User> callback = accountService.verifyCredentials(true, true, true);
        callback.clone().enqueue(new Callback<User>() {
            @Override
            public void success(Result<User> result) {
              Log.d("NAME ", result.data.name);
               Log.d("EMAIL", result.data.email);
              Log.d("PICTURE ",  result.data.profileImageUrl);
            }

            @Override
            public void failure(TwitterException exception) {

            }
        });
    }

最后生成自定义按钮的点击事件

ivTwitter.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //twitter login button
                ivTwitterMain.performClick(); 
            }
        });
于 2017-07-26T12:51:01.070 回答
0

我假设你已经阅读了 Twitter 官方文档中关于 iOS 应用中 TwitterKit 的“安装”。我有这样的经验,唯一有效但不在文档中的是:

  • 在 Info.plist 文件中,确保 CFBundleURLSchemes 中的“twitterkit-yourAppKey”是第 0 项。

我已经在这里回答了这个问题。希望它可以帮助你:)

于 2017-08-10T12:32:42.607 回答