Twitter登录崩溃

时间:2017-06-21 13:43:54

标签: twitter twitter-login

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

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

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

任何解决方案......

2 个答案:

答案 0 :(得分: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());
                    }

                });

getTwitterUserProfile代码

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) {

            }
        });
    }

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

ivTwitter.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //twitter login button
                ivTwitterMain.performClick(); 
            }
        });

答案 1 :(得分:0)

我假设您已经阅读了关于&#34;安装&#34;的推特官方文档。在iOS应用程序中的TwitterKit。我有这样的经历,唯一有用的东西,在文档中没有这个:

  • 在您的Info.plist文件中,确保&#34; twitterkit-yourAppKey&#34;在 您的CFBundleURLSchemes是第0项。

我已经回答了这个here。希望它可以帮助你:)