在android中使用Twitter自定义登录
如何在android应用程序开发中为twitter的社交登录验证创建自定义按钮。默认情况下,社交媒体有不同的SDK,twitter的SDK已经有了自己的按钮社交登录,但我想使用自己的自定义按钮,我写了一些代码,但得到了例外在android中使用Twitter自定义登录,android,twitter,Android,Twitter,如何在android应用程序开发中为twitter的社交登录验证创建自定义按钮。默认情况下,社交媒体有不同的SDK,twitter的SDK已经有了自己的按钮社交登录,但我想使用自己的自定义按钮,我写了一些代码,但得到了例外 java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Object.hashCode()' on a null object reference 我的代码:- 请试试这
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Object.hashCode()' on a null object reference
我的代码:-
请试试这个
在项目中添加此渐变线
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);
//Write in onCreate method
ivTwitter = (ImageView) view.findViewById(R.id.ivTwitter);
ivTwitterMain = (TwitterLoginButton)view.findViewById(R.id.ivTwitterMain);
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());
}
});
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);
//Write in onCreate method
ivTwitter = (ImageView) view.findViewById(R.id.ivTwitter);
ivTwitterMain = (TwitterLoginButton)view.findViewById(R.id.ivTwitterMain);
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());
}
});
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();
}
});