---
title: 안드로이드 앱 Twitter 로그인 구현 방법 가이드
slug: docs-kr/android/working-with-users/android-twitter-login
description: 안드로이드 프로젝트에 Twitter 로그인을 구현하는 방법을 배우세요. 단계별 가이드를 통해 설정과 인증 과정을 완성하세요.
image: https://www.back4app.com/images/logo-social.png
createdAt: 2024-03-14T12:48:45.017Z
---

# 안드로이드 앱에 트위터 로그인 추가하는 방법

## 소개

이 섹션에서는 트위터 로그인을 사용하여 사용자 등록이 가능한 앱을 만드는 방법을 설명합니다.[Parse Server 핵심 기능](https://www.back4app.com/product/parse-server)을 통해 Back4App을 사용합니다.

이렇게 보일 것입니다:

::Image[]{src="https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/3Fmyms7qN4uXug_8PjCkl_twitter-login.gif" size="50" width="274" height="477" position="center" showCaption="false"}

:::hint{type="success"}
언제든지 이 튜토리얼로 구축된 전체 안드로이드 프로젝트에 접근할 수 있습니다.[GitHub 저장소](https://github.com/back4app/android-geopoints-tutorial).
:::

## 전제 조건

:::hint{type="info"}
**이 튜토리얼을 완료하려면 다음이 필요합니다:**

- [안드로이드 스튜디오](https://developer.android.com/studio/index.html)
- Back4App에서 생성된 앱.
  - **참고:&#x20;**&#x20;[새 Parse 앱 튜토리얼](https://www.back4app.com/docs/get-started/new-parse-app)을 따라 Back4App에서 Parse 앱을 만드는 방법을 배우세요.
- Back4App에 연결된 안드로이드 앱.
  - **참고:&#x20;**&#x20;[Parse SDK 설치 튜토리얼](https://www.back4app.com/docs/android/parse-android-sdk)을 따라 Back4App에 연결된 안드로이드 스튜디오 프로젝트를 만드세요.
- 안드로이드 4.1 (젤리빈) 이상을 실행하는 장치 (또는[ 가상 장치](https://developer.android.com/studio/run/managing-avds.html))
:::

## 1 - 트위터 설정

트위터 기능을 사용하려면 다음이 필요합니다:

1. 이동하십시오 [트위터 애플리케이션 관리 웹사이트](https://apps.twitter.com/), 트위터 계정으로 로그인하고 <font color="#2166ae">`새 앱 만들기`</font>를 클릭하십시오.
2. 다음의 <font color="#2166ae">`애플리케이션 세부정보`</font>. <font color="#2166ae">`콜백 URL`</font>을 지정하라는 요청을 받으면 <font color="#2166ae">`twittersdk://`</font>. 이는 **필수**로 트위터를 통한 인증을 활성화하기 위해 필요합니다.

![](https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/4KreLh6xuEZyCgXIVo4ge_image.png)

&#x20;    3\. <font color="#2166ae">`개발자 계약`</font>을 클릭한 다음 <font color="#2166ae">`트위터 애플리케이션 만들기`</font>를 클릭하십시오.

&#x20;    4\. 안드로이드 스튜디오 프로젝트를 열고 <font color="#2166ae">`build.gradle (Module: app)`</font>에서 <font color="#2166ae">`dependencies{}`</font> 섹션에 Parse Twitter Utils SDK for Android를 설치하기 위한 다음 코드를 추가하세요.

:::BlockQuote
*1  // 아래 줄을 Parse Twitter Utils SDK for Android의 최신 버전으로 변경하는 것을 잊지 마세요*
2  implementation 'com.github.parse-community\:ParseTwitterUtils-Android\:latest.version.here'
:::

:::hint{type="info"}
Parse Facebook Utils SDK for Android의 버전을 최신 버전으로 업데이트하는 것을 잊지 마세요. 최신 버전은 [JitPack 웹사이트](https://jitpack.io/), 다음 단계를 따라 확인할 수 있습니다:

1. JitPack 웹사이트에서 <font color="#2166ae">`parse-community/ParseTwitterUtils-Android`</font>를 <font color="#2166ae">`Git repo url`</font> 박스에 붙여넣으세요.
2. 그 후, <font color="#2166ae">`Look up`</font> 버튼을 클릭하세요. 그러면 다음 이미지와 같이 Parse Twitter Utils SDK for Android의 사용 가능한 버전을 볼 수 있어야 합니다.

![](https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/i9JXLBBrNNsgQarX_tI8u_image.png)
:::

## 2 - Twitter 앱을 Back4App과 연결하기

1. Android Studio 프로젝트의 <font color="#2166ae">`App`</font>이라는 Java 파일에서, Parse SDK를 초기화하기 위해 만든 Application을 확장한 후, <font color="#2166ae">`onCreate`</font> 메서드에서, <font color="#2166ae">`Parse.initialize()`</font> 호출 직후에, 다음 코드를 사용하여 Parse Twitter Utils SDK를 초기화합니다.

```java
1   ParseTwitterUtils.initialize(getString(R.string.twitter_consumer_key),  getString(R.string.twitter_consumer_secret));
```

:::hint{type="danger"}
**이 단계에서 설명한 대로&#x20;**<font color="#2166ae">`App.java`</font>**&#x20;파일이 없다면, [Android용 Parse SDK 설치](https://www.back4app.com/docs/android/parse-android-sdk) 문서를 참조하고 Parse SDK를 올바르게 설치하기 위해 필요한 모든 단계를 따랐는지 확인하십시오. Parse SDK를 제대로 설치하지 않으면 Parse를 통한 Facebook 로그인이 작동하지 않습니다.**
:::

&#x20;    2\. <font color="#2166ae">`app`</font> > <font color="#2166ae">`res`</font> > <font color="#2166ae">`values`</font> > <font color="#2166ae">`strings.xml`</font> 파일로 이동합니다.

![](https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/NwZ3K7fEHhCwOPW3tu19G_image.png)

1. 다음 코드를 <font color="#2166ae">`strings.xml`</font> 파일에 추가하십시오:

:::BlockQuote
*\<!-- 필요한 경우 다음 문자열을 변경하십시오 -->&#xA;*\<string name="twitter\_consumer\_key">PASTE\_YOUR\_TWITTER\_CONSUMER\_KEY\</string>\<string name="twitter\_consumer\_secret">PASTE\_YOUR\_TWITTER\_CONSUMER\_SECRET\</string>
:::

&#x20;    2\. <font color="#2166ae">`string.xml`</font> 파일을 열어 두고 Back4App 웹사이트로 이동하여 로그인한 후 <font color="#2166ae">`내 앱`</font>을 클릭합니다. 앱을 찾은 후 <font color="#2166ae">`서버 설정`</font>을 클릭합니다.

![](https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/DelZzb12DpiSGO6982KlB_image.png)

1. “Twitter 로그인” 블록을 찾아 클릭합니다 <font color="#2166ae">`설정`</font>. “Twitter 로그인” 블록은 다음과 같습니다:

![](https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/SVtBq40Gp_rC_p1fs-9t9_image.png)

&#x20;    2\. 방문한 *Back4App Twitter 로그인&#x20;*&#xD398;이지를 열어 두고 [Twitter 애플리케이션 관리 웹사이트](https://apps.twitter.com/)로 가서 앱을 찾아 이름을 클릭합니다.

&#x20;    3\. 키 및 액세스 토큰을 클릭하고, 소비자 키 (API 키)와 소비자 비밀 (API 비밀)을 복사하여 Back4App Twitter 로그인 페이지에 붙여넣고 해당 필드를 채웁니다. 완료하려면 저장을 클릭합니다. 소비자 키 (API 키)와 소비자 비밀 (API 비밀)은 다음과 같습니다:

![](https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/wfT0e_pyIJNl7ipTqcUR4_image.png)

&#x20;    4\. 또한, <font color="#2166ae">`소비자 키 (API 키)`</font>와 <font color="#2166ae">`소비자 비밀 (API 비밀)`</font>을 복사하여 <font color="#2166ae">`strings.xml`</font> 파일에 붙여넣으세요.

## 4 - 로그인

1. 당신의 <font color="#2166ae">`LoginActivity`</font>:

:::BlockQuote
1   import android.app.AlertDialo&#x67;**;**
2   import android.app.ProgressDialo&#x67;**;**
3   import android.content.DialogInterfac&#x65;**;**
4   import android.content.Inten&#x74;**;**
5   import android.support.v7.app.AppCompatActivit&#x79;**;**
6   import android.os.Bundl&#x65;**;**
7   import android.view\.Vie&#x77;**;**
8   import android.util.Lo&#x67;**;**
9   import android.widget.Butto&#x6E;**;**
10  import android.widget.Toas&#x74;**;**
11
12  import com.parse.LogInCallbac&#x6B;**;**
13  import com.parse.ParseExceptio&#x6E;**;**
14  import com.parse.twitter.ParseTwitterUtil&#x73;**;**
15  import com.parse.ParseUse&#x72;**;**
16  import com.parse.SaveCallbac&#x6B;**;**
:::

&#x20;    2\. 트위터 로그인을 구현하려면 아래 코드를 사용하세요:

```java
1   ParseTwitterUtils.logIn(LoginActivity.this, new LogInCallback() {
2
3        @Override
4        public void done(final ParseUser user, ParseException err) {
5            if (err != null) {
6                dlg.dismiss();
7                ParseUser.logOut();
8                Log.e("err", "err", err);
9            }
10           if (user == null) {
11               dlg.dismiss();
12               ParseUser.logOut();
13               Toast.makeText(LoginActivity.this, "The user cancelled the Twitter login.", Toast.LENGTH_LONG).show();
14               Log.d("MyApp", "Uh oh. The user cancelled the Twitter login.");
15           } else if (user.isNew()) {
16               dlg.dismiss();
17               Toast.makeText(LoginActivity.this, "User signed up and logged in through Twitter.", Toast.LENGTH_LONG).show();
18               Log.d("MyApp", "User signed up and logged in through Twitter!");
19               user.setUsername(ParseTwitterUtils.getTwitter().getScreenName());
20               user.saveInBackground(new SaveCallback() {
21                   @Override
22                   public void done(ParseException e) {
23                       if (null == e) {
24                           alertDisplayer("First tome login!", "Welcome!");
25                       } else {
26                           ParseUser.logOut();
27                           Toast.makeText(LoginActivity.this, "It was not possible to save your username.", Toast.LENGTH_LONG).show();
28                       }
29                   }
30               });
31           } else {
32               dlg.dismiss();
33               Toast.makeText(LoginActivity.this, "User logged in through Twitter.", Toast.LENGTH_LONG).show();
34               Log.d("MyApp", "User logged in through Twitter!");
35               alertDisplayer("Oh, you!","Welcome back!");
36           }
37       }
38   });
```

:::hint{type="info"}
예제 프로젝트에서 이 코드는 다음에 위치합니다.<font color="#2166ae">`트위터로 로그인`</font> 버튼 콜백.
:::

&#x20;    3\. Alert Dialogs를 표시하는 방법을 추가하면 프로세스가 더 전문적으로 보이는 것이 흥미롭습니다. 아래의 방법이 이를 수행합니다:

```java
1   private void alertDisplayer(String title,String message){
2           AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this)
3                   .setTitle(title)
4                   .setMessage(message)
5                   .setPositiveButton("OK", new DialogInterface.OnClickListener() {
6                       @Override
7                       public void onClick(DialogInterface dialog, int which) {
8                           dialog.cancel();
9                           // don't forget to change the line below with the names of your Activities
10                          Intent intent = new Intent(LoginActivity.this, LogoutActivity.class);
11                          intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
12                          startActivity(intent);
13                      }
14                   });
15          AlertDialog ok = builder.create();
16          ok.show();
17  }
```

## 5 - 로그아웃

1. 당신의 <font color="#2166ae">`LoginActivity`</font>:

:::BlockQuote
1   import android.app.AlertDialo&#x67;**;**
2   import android.app.ProgressDialo&#x67;**;**
3   import android.content.DialogInterfac&#x65;**;**
4   import android.content.Inten&#x74;**;**
5   import android.support.v7.app.AppCompatActivit&#x79;**;**
6   import android.os.Bundl&#x65;**;**
7   import android.view\.Vie&#x77;**;**
8   import android.widget.Butto&#x6E;**;**
9
10  import com.parse.ParseUse&#x72;**;**
:::

&#x20;    2\. 트위터 로그아웃을 구현하려면 아래 코드를 사용하세요:

:::BlockQuote
&#x31;**&#x20;  ParseUser.**&#x6C;ogOu&#x74;**();**
2   alertDisplaye&#x72;**(**"그래서, 당신은 가고 있군요..."**,** "좋아요...안녕히 가세요"**);**
:::

:::hint{type="info"}
예제 프로젝트에서 이 코드는<font color="#2166ae">`트위터를 통한 로그아웃`</font> 버튼 콜백 안에 위치합니다.
:::

:::hint{type="info"}
메서드 <font color="#2166ae">`alertDisplayer`</font>는 <font color="#2166ae">`LoginActivity`</font>에 추가한 것과 동일합니다. <font color="#2166ae">`Intent`</font> 인수는 변경하는 것을 잊지 마세요. Android Studio 프로젝트의 strings.xml 파일에서.
:::

## 완료되었습니다!

이 단계에서, Parse Server의 핵심 기능을 통해 Back4App을 사용하여 트위터로 앱에 로그인하고, 등록하고, 로그아웃할 수 있습니다!
