我正在使用Twitter登录开发应用程序。当我检查Fabric时,它不包含Twitter登录,因为它不再通过Fabric提供,所以我尝试使用Twitter Kit(Twitter Kit Link)来实现它。 我在我的应用程序上安装了Twitter Kit,当我尝试运行应用程序时崩溃
Twitter.sharedInstance().startWithConsumerKey(<key>, consumerSecret: <secret>)
错误:以NSException类型的未捕获异常终止
任何解决方案......
答案 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。我有这样的经历,唯一有用的东西,在文档中没有这个:
我已经回答了这个here。希望它可以帮助你:)