Twitter登录崩溃

问题描述:

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

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

错误运行它崩溃的应用程序:与类型的未捕获的异常终止NSException

任何解决方案...

试试这个代码

在你的项目

添加此行的gradle

写在你的活动/片段

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

      } 
     }); 
    } 

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

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

我假设您已经阅读Twitter官方文档关于iOS应用中TwitterKit的“安装”。我有过这样的经验,并只有工作,没有在文档中是这样的事情:

  • 在你Info.plist文件确保在 你CFBundleURLSchemes“twitterkit-yourAppKey”是项目0

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