Pembuka
Setelah sebelumnya pada tutorial Cara Menghubungkan Twitter dengan Program Java berjalan dengan sukses, kali ini saya akan memberikan contoh program Cara Membuat Login Aplikasi Menggunakan Twitter Di Java. Sama halnya dengan yang sebelumnya, kita masih menggunakan token yang pernah di buat. Namun dalam tutorial ini kita hanya menggunakan token consumer dan token secret consumer.
Pembahasan
Kita akan membuat dalam project yang berbeda atau projek baru dari sebelumnya, pada tutorial ini nama projek adalah SystemLoginWithTwitter. Setelah projek baru dibuat akan ada nama package dengan nama systemloginwithtwitter dan main class SystemLoginWithTwitter.java. Kita akan abaikan java class tersebut, buatlah jFrame dengan nama loginFrame untuk interface login. Sekiranya dalam tutorial ini interface yang saya gunakan seperti gambar berikut.
Dengan beberapa komponen interface jFrame login adalah seperti didalam tabel.
Komponen | Text | Variable | Fungsi |
---|---|---|---|
jFrame | - | - | Merupakan form utama (main form )dari aplikasi berupa login |
jPanel | - | Default (jPanel1) | Panel untuk menapung komponen swing control |
jLabel | - | icon, head, jsc | Menampilkan icon twitter, menampilkan text Login With Database And Twitter, dan menampilkan text www.java-sc.com |
jPanel | - | Default (jPanel2) | Panel untuk menapung komponen swing control textfield dan button |
JTextField | - | username | textfield memasukan username |
JPasswordField | - | password | textfield memasukan password |
JButton | Login,Twitter,Coming Soon | login_db,login_tw,login_cs | tombol aksi untuk masing-masing intruksi login |
Untuk interface terserah saja, karena itu adalah kreasi masing-masing developer. Selanjutnya buat lagi JFrame dengan interface untuk menampilkan halaman utama setelah login. Beri nama JFrame baru dengan nama homeFrame, perhatikan interface yang ada saya buat (boleh ditiru ataupun tidak).
Gambar 2 |
Komponen | Text | Variable | Fungsi |
---|---|---|---|
jFrame | - | - | Merupakan interface setelah login (home) |
jPanel | - | Default (jPanel1) | Panel untuk menapung komponen swing control |
jLabel | Selamat Datang, null, user_id, dan screen_name | lbl_welcome,lbl_foto, lbl_userId, dan lbl_screenName | Menapilkan data yang di dapat dari twitter |
jSrollPanel | - | Default | Panel untuk menapung komponen jPanel dan beberapa komponen lainnya. |
JTextPane | - | timelineText | Panel untuk menapilkan beberapa text (timeline pada twitter) |
Beralih pada loginFrame.java, kemudian klik 2 kali pada tombol Twitter untuk membuat event actionPerform.
Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer("Consumer Token", "Consumer Secret Token");
try {
RequestToken requestToken = twitter.getOAuthRequestToken();
Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
try {
Desktop.getDesktop().browse(new URL(requestToken.getAuthorizationURL()).toURI());
} catch (IOException | URISyntaxException e) {
System.out.println("Tidak Dapat Membuka Browser :"+e.getMessage());
}
}
AccessToken accessToken = null;
while (null == accessToken) {
try {
String pin = JOptionPane.showInputDialog(null, "Masukan Pin Autentikasi", "PIN Autentikasi Aplikasi",JOptionPane.INFORMATION_MESSAGE);
accessToken = twitter.getOAuthAccessToken(requestToken,pin);
} catch (TwitterException e) {
JOptionPane.showMessageDialog(null,e.getMessage());
}
}
User user = twitter.verifyCredentials();
JOptionPane.showMessageDialog(null, "Assalamualaikum "+user.getName());
SystemLoginWithTwitter.set_userId(user.getId());
SystemLoginWithTwitter.set_name(user.getName());
SystemLoginWithTwitter.set_token(accessToken.getToken());
SystemLoginWithTwitter.set_tokenSecret(accessToken.getTokenSecret());
homeFrame home = new homeFrame();
home.setVisible(true);
this.setVisible(false);
} catch (TwitterException e) {
JOptionPane.showMessageDialog(null, "Gagal : "+e.getMessage());
}
Mungkin akan ada error disebabkan karena tidak ada library yang di import, namun ada beberapa eror lagi yang belum selesai terutama pada bagian. SystemLoginWithTwitter.set_userId(user.getId());
SystemLoginWithTwitter.set_name(user.getName());
SystemLoginWithTwitter.set_token(accessToken.getToken());
SystemLoginWithTwitter.set_tokenSecret(accessToken.getTokenSecret());
Masalah ini muncul karena kita belum membuat method untuk set dan get data pada class SystemLoginWithTwitter.java. Sekarang beralihlah pada class berikut, kemudian hapus block pada public static void main sehingga hanya menjadi seperti ini saja.package systemloginwithtwitter;
/**
*
* @author jsc-dev
*/
public class SystemLoginWithTwitter {
}
Selanjutnya ketikan kode program berikut didalam sehingga menjadi.package systemloginwithtwitter;
/**
*
* @author jsc-dev
*/
public class SystemLoginWithTwitter {
private static Long userId;
private static String name;
private static String token;
private static String tokenSecret;
public static Long get_userId(){
return userId;
}
public static void set_userId(Long userId){
SystemLoginWithTwitter.userId = userId;
}
public static String get_name(){
return name;
}
public static void set_name(String name){
SystemLoginWithTwitter.name = name;
}
public static String get_token(){
return token;
}
public static void set_token(String token){
SystemLoginWithTwitter.token = token;
}
public static String get_tokenSeret(){
return tokenSecret;
}
public static void set_tokenSecret(String tokenSecret){
SystemLoginWithTwitter.tokenSecret = tokenSecret;
}
}
Barulah masalah error yang terjadi seharusnya sudah selesai, apabila belum selesai silahkan berkomentar pada kolom komentar. Untuk tahap ini seharusnya jika dijalankan sudah berhasil, sebelum melakukan testing saya akan tambahkan beberapa kode program lagi untuk homeFrame.java. Buka jframe homeFrame, kemudian masuk pada bagian source dari class jFrame tersebut. Cari fungsi berikut, public homeFrame() {
initComponents();
}
Tambahkan method baru dengan nama loadDataUser(), dan ketikan kode program berikut di dalam nya. private void loadDataUser(){
String nama = SystemLoginWithTwitter.get_name();
Long userId = SystemLoginWithTwitter.get_userId();
String token = SystemLoginWithTwitter.get_token();
String tokenSecret = SystemLoginWithTwitter.get_tokenSeret();
try {
ConfigurationBuilder config = new ConfigurationBuilder();
config.setDebugEnabled(true)
.setOAuthConsumerKey("KAiWPUJ41gLAG60nqY0iX1Yd6")
.setOAuthConsumerSecret("CIesBNQVoyobgcVAlTXLQJLVMIRpOMkAGJl1KHky7URdhVeslI")
.setOAuthAccessToken(token)
.setOAuthAccessTokenSecret(tokenSecret);
TwitterFactory tfactory = new TwitterFactory(config.build());
twitter4j.Twitter twitter = tfactory.getInstance();
User user = twitter.verifyCredentials();
lbl_welcome.setText("Selamat Datang "+nama);
lbl_foto.setIcon((Icon) new ImageIcon(new ImageIcon(new URL(user.getOriginalProfileImageURL())).getImage().getScaledInstance(138, 138, Image.SCALE_DEFAULT)));
lbl_userId.setText(userId.toString());
lbl_screenName.setText(user.getScreenName());
List status = twitter.getHomeTimeline();
StringBuilder sb = new StringBuilder();
for (Status s : status){
sb.append(s.getUser().getName()+" : "+s.getText()+"\n\n\n");
}
timelineText.setText(sb.toString());
} catch (TwitterException e) {
JOptionPane.showMessageDialog(null, e.getMessage(), "Gagal Membaca Data User Twitter", JOptionPane.ERROR_MESSAGE);
} catch (MalformedURLException ex) {
Logger.getLogger(homeFrame.class.getName()).log(Level.SEVERE, null, ex);
}
Nama fungsi selanjutnya di jalankan pada homeFrame sehingga menjadi seperti kode program berikut. public homeFrame() {
initComponents(); loadDataUser();
}
Selanjutnya bisa di jalankan seluruh program dengan membuka (run) pada bagian loginFrame, untuk memuali bisa lihat gambar dibawah ini.Gambar 3 |
Penutup
Sayangnya cara ini hanya berguna setiap ingin masuk menggunakan akun twitter harus menggunakan akses PIN yang di kirim dari twitter. Saya belum mendapatkan solusi jika twitter4j tersedia untuk desktop dari segi login tanpa menggunakan PIN, jika menggunakan fungsi Callback URL pada twitter berlaku untuk tipe program basis web.
Gan ini pake wp or blogger..
BalasHapusBlognya pake blogger gan.
Hapuslucky club online casino sites 2020 | Casino site review - Lucky Club
BalasHapusLucky club online casino sites 2020 | Casino site review. · 5. Lucky Club Casino | · 8. Lucky Club Casino. · 7. luckyclub Lucky Club Casino