묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결하울의 안드로이드 인스타그램 클론 만들기
페이스북 로그인
페이스북 로그인버튼을 활용하여 실행하면, 페이스북 계정을 올바르게 입력하였음에도 다음과 같이 나타나서 문의드립니다. 코드는 아래와 같습니다. package com.example.howlstagramimport android.content.ContentValues.TAGimport android.content.Intentimport android.content.pm.PackageInfoimport android.content.pm.PackageManagerimport android.os.Bundleimport android.service.controls.ControlsProviderService.TAGimport android.util.Base64import android.util.Logimport android.widget.Toastimport androidx.appcompat.app.AppCompatActivityimport androidx.fragment.app.FragmentActivityimport com.facebook.AccessTokenimport com.facebook.CallbackManagerimport com.facebook.FacebookCallbackimport com.facebook.FacebookExceptionimport com.facebook.login.LoginManagerimport com.facebook.login.LoginResultimport com.google.android.gms.auth.api.Authimport com.google.android.gms.auth.api.signin.GoogleSignInimport com.google.android.gms.auth.api.signin.GoogleSignInAccountimport com.google.android.gms.auth.api.signin.GoogleSignInClientimport com.google.android.gms.auth.api.signin.GoogleSignInOptionsimport com.google.firebase.auth.FacebookAuthProviderimport com.google.firebase.auth.FirebaseAuthimport com.google.firebase.auth.FirebaseUserimport com.google.firebase.auth.GoogleAuthProviderimport kotlinx.android.synthetic.main.activity_login.*import java.security.MessageDigestimport java.security.NoSuchAlgorithmExceptionimport java.util.*class LoginActivity : AppCompatActivity() { var auth : FirebaseAuth? = null var googleSignInClient : GoogleSignInClient? = null var GOOGLE_LOGIN_CODE = 9001 var callbackManager : CallbackManager? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_login) auth = FirebaseAuth.getInstance() email_login_button.setOnClickListener { signinAndSignup() } google_sign_in_button.setOnClickListener { //First Step googleLogin() } facebook_login_button.setOnClickListener { facebooklogin() //First Step } var gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken("284216010288-9grtncojbd715e2b7ud2mkg47g3nttpj.apps.googleusercontent.com") .requestEmail() .build() googleSignInClient = GoogleSignIn.getClient(this,gso) printHashKey() callbackManager = CallbackManager.Factory.create() } fun printHashKey() { try { val info: PackageInfo = packageManager .getPackageInfo(packageName, PackageManager.GET_SIGNATURES) for (signature in info.signatures) { val md = MessageDigest.getInstance("SHA") md.update(signature.toByteArray()) val hashKey = String(Base64.encode(md.digest(), 0)) Log.i("TAG", "printHashKey() Hash Key: $hashKey") } } catch (e: NoSuchAlgorithmException) { Log.e("TAG", "printHashKey()", e) } catch (e: Exception) { Log.e("TAG", "printHashKey()", e) } } fun googleLogin(){ var signInIntent = googleSignInClient?.signInIntent startActivityForResult(signInIntent,GOOGLE_LOGIN_CODE) } fun facebooklogin(){ LoginManager.getInstance() // public profile과 email을 가져옴 .logInWithReadPermissions(this, Arrays.asList("public_profile","email")) LoginManager.getInstance() // 로그인 성공시 가져오게 되는 부분. .registerCallback(callbackManager, object : FacebookCallback<LoginResult> { override fun onSuccess(result: LoginResult?) { // Second Step handleFacebookAccessToken(result?.accessToken) //로그인 성공시 데이터를 firebase로 } override fun onCancel() { } override fun onError(error: FacebookException) { } }) } fun handleFacebookAccessToken(token : AccessToken?){ var credential = FacebookAuthProvider.getCredential(token?.token!!) auth?.signInWithCredential(credential) // firebase로 정보를 넘기는것. google과 동일 ?.addOnCompleteListener { task -> if (task.isSuccessful) { //login //Third Step 응답값을 받아서 정리한다. moveMainPage(task.result?.user) } else { //show the error message Toast.makeText(this, task.exception?.message, Toast.LENGTH_LONG).show() } } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) callbackManager?.onActivityResult(requestCode, resultCode,data) if(requestCode == GOOGLE_LOGIN_CODE){ var result = Auth.GoogleSignInApi.getSignInResultFromIntent(data) if(result.isSuccess){ var account = result.signInAccount //second step firebaseAuthWithGoogle(account) } } } fun firebaseAuthWithGoogle(account : GoogleSignInAccount?){ var credential = GoogleAuthProvider.getCredential(account?.idToken,null) auth?.signInWithCredential(credential) ?.addOnCompleteListener { task -> if (task.isSuccessful) { //login moveMainPage(task.result?.user) } else { //show the error message Toast.makeText(this, task.exception?.message, Toast.LENGTH_LONG).show() } } } fun signinAndSignup(){ // 회원가입 하는 코드 auth?.createUserWithEmailAndPassword(email_edittext.text.toString(), password_edittext.text.toString()) ?.addOnCompleteListener { task -> if(task.isSuccessful){ //creating a user account moveMainPage(task.result?.user) }else if(task.exception?.message.isNullOrEmpty()){ //show the error message Toast.makeText(this, task.exception?.message, Toast.LENGTH_LONG).show() }else{ //login if you have account signinEmail() } } } fun signinEmail(){ auth?.signInWithEmailAndPassword(email_edittext.text.toString(), password_edittext.text.toString()) ?.addOnCompleteListener { task -> if (task.isSuccessful) { //login moveMainPage(task.result?.user) } else { //show the error message Toast.makeText(this, task.exception?.message, Toast.LENGTH_LONG).show() } } } fun moveMainPage(user:FirebaseUser?){ if(user != null){ startActivity(Intent(this, MainActivity::class.java)) } }}
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
4강 View 환경설정
현재 4강을 듣고 있는데 spring run 과정에서 문제가 생깁니다. 이제 index.html은 문제없이 실행이 되다가 hello.html을 만드는 과정에서 실행을 하고자 하는데 갑자기 터미널에서 오류가 발생하고 있는데 붉은 글씨가 문제로 보이는데 똑같이 따라하다가 안돼서 강의 교재를 복사했는데도 되지 않네요 어떻게 해야 해결이 가능할까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 영화 사이트 만들기
'concurrently'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.
안녕하세요. 다음과 같은 오류를 해결하지 못하고 있습니다. 'concurrently'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. https://shinye0213.tistory.com/267 이 블로그 속에 많은 해결 방법이 있어 다 따라해보았지만 해결하지 못했습니다. 선생님 파일을 클론해서 받았고 npm install을 백단, 프론트단 다 해주었는데 왜 이런 오류가 나타나는지, 해결방법을 알려주시면 감사드리겠습니다ㅠㅠ
-
미해결하울의 안드로이드 인스타그램 클론 만들기
4강) 페이스북 로그인 - 앱내에서 에러
The supplied auth credential is malformed or has expired. [Unsuccessful debug_token response from Facebook: {"error":{"message":"invalid OAuth access token signature.","type":"OAuthException","code":190,"fbtrace_id":Acu8tEB3YQPe3TjpMjaMXVn"}}] 앱 실행시 이메일 로그인과 구글로그인은 잘 작동하는데, 페이스북로그인 버튼을 클릭하면 위의 에러 메시지가 뜹니다. 어떤 문제가 있는건지 잘 모르겠습니다ㅜㅜ