๐Ÿค”<Firebase> ํŽ˜์ด์Šค๋ถ ๋กœ๊ทธ์ธ ํ™˜๊ฒฝ์„ค์ •

๐Ÿ“Œfirebase Authentication์œผ๋กœ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

Authentication ์— ๋“ค์–ด๊ฐ€ sign-in method ํƒญ์„ ๋“ค์–ด๊ฐ€๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฐฝ์ด ๋œจ๋Š”๋ฐ ๋กœ๊ทธ์ธ ์ œ๊ณต์—…์ฒด ์—์„œ ์ƒˆ ์ œ๊ณต์—…์ฒด ์ถ”๊ฐ€๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ๋œ๋‹ค.

์ƒˆ ์ œ๊ณต์—…์ฒด ์ถ”๊ฐ€ ์—์„œ ํŽ˜์ด์Šค๋ถ์„ ์ถ”๊ฐ€๋ฅผ ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์˜ค๋Š”๋ฐ Facebook for Developers์— ๋“ค์–ด๊ฐ€๊ฐ€์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด์ค˜์•ผ ํ•œ๋‹ค.

https://developers.facebook.com/?locale=ko_KR

ํ™ˆํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ€ ๋กœ๊ทธ์ธ๋ฅผ ํ•ด์ฃผ๊ณ  ์ƒ๋‹จ์— ๋‚ด ์•ฑ ์— ๋“ค์–ด๊ฐ€ ์ค€ ํ›„ ์•ฑ ๋งŒ๋“ค๊ธฐ๋ฅผ ํ•ด์ค€๋‹ค.

๊ทธ๋Ÿผ ๋‹ค์Œ ๊ณผ ๊ฐ™์ด ๋‚˜์˜ค๋Š”๋ฐ facebook ๋กœ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์†Œ๋น„์ž๋ฅผ ํด๋ฆญํ•ด์ค€๋‹ค.

ํ‘œ์‹œ์ด๋ฆ„๊ณผ ์•ฑ ์—ฐ๋ฝ์ฒ˜ ์ด๋ฉ”์ผ์„ ์ ์–ด์ค€๋‹ค.

๋‹ค ์ ์€ ํ›„ ์•ฑ ๋งŒ๋“ค๊ธฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•ฑ์— ์ œํ’ˆ ์ถ”๊ฐ€ ์ฐฝ์ด ๋œฌ๋‹ค. facebook ๋กœ๊ทธ์ธ๋ฅผ ์‚ฌ์šฉ ํ•˜๊ธฐ ์œ„ํ•ด์„œ facebook ๋กœ๊ทธ์ธ์„ ์„ค์ •ํ•ด ์ค€๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์„ค์ •์„ ๋ˆ„๋ฅด๋ฉด ํ”Œ๋žซํผ์„ ์„ ํƒํ•˜๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์ €๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์•ˆ๋“œ๋กœ์ด๋“œ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•ˆ๋“œ๋กœ์ด๋“œ์ŠคํŠœ๋””์˜ค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค.

์ด ๊ณผ์ •์—์„œ ์•ˆ ๋˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋Š”๋ฐ Meta for developers์™€ stackoverflow ๋„์›€์„ ํ†ตํ•ด ํ•ด๊ฒฐ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

https://developers.facebook.com/docs/facebook-login/android/?locale=ko_KR

Facebook SDK ๊ฐ€์ ธ์˜ค๊ธฐ 1

๋จผ์ € ์ด ์„ค๋ช…์„œ๋Œ€๋กœ ํ•˜๋ฉด API ๋ ˆ๋ฒจ์€ 15 ์ด์ƒ์ด์—ฌ์•ผ ํ•˜๊ณ  build.gradle(Project)์— mavenCentral() ์ €์žฅํ•˜๋ผ๊ณ  ๋˜์–ด์žˆ๋Š”๋ฐ ์•ˆ๋“œ๋กœ์ด๋“œ์ŠคํŠœ๋””์˜ค๊ฐ€ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋œ ํ›„ build.gradle(Project)์— ๋“ค์–ด๊ฐ€๋ฉด ๋ฐ‘์— ์žˆ๋Š” ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ๋‚˜์˜จ๋‹ค.

build.gradle(Project)์— ๋“ค์–ด๊ฐ€์ง€ ๋ง๊ณ  settings.gradle ๋“ค์–ด๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถ”๊ฐ€ํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.

Facebook SDK ๊ฐ€์ ธ์˜ค๊ธฐ 2

์ด ๋ถ€๋ถ„์—์„œ๋„ build.gradle(Module: app)์„ ์—ฐ ํ›„ dependencies{} ์„น์…˜์— implementation 'com.facebook.android:facebook-android-sdk:[4,5)'๋ฅผ ๋„ฃ์–ด ์ฃผ๋ผ๊ณ  ๋˜์–ด ์žˆ๋Š”๋ฐ ๋‚ด๊ฐ€ ๋ญ˜ ์ž˜๋ชป๋˜๋Š”์ง€ ์•ˆ๋˜์–ด Meta for Developers ๋ฌธ์„œ์—์„œ ์˜๋ฌธ๋ฒ„์ „๊ณผ ํ•œ๊ตญ์–ด๋ฒ„์ „ ์ฝ”๋“œ๊ฐ€ ํ‹€๋ฆฌ๊ธธ๋ž˜ ์˜๋ฌธ๋ฒ„์ „์„ ์ ์–ด์คฌ๋”๋‹ˆ ๋˜์—ˆ๋‹ค.

ํ•œ๊ตญ์–ด ๋ฒ„์ „ ๋ฌธ์„œ

์˜๊ตญ์–ด ๋ฒ„์ „ ๋ฌธ์„œ

Facebook SDK ๊ฐ€์ ธ์˜ค๊ธฐ 3

์ฝ”๋“œ๋ฅผ ๋‹ค ๋„ฃ์–ด์ฃผ๊ณ  Sync Now๋ฅผ ํ•ด์ฃผ๊ณ  ์ฝ”ํ‹€๋ฆฐํŒŒ์ผ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด Login๋ฅผ ์ ์–ด์ฃผ๋ฉด com.facebook์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํด๋ž˜์Šค๊ฐ€ Import๊ฐ€ ๋˜๋ฉด Facebook SDK ์„ค์ •์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•ฑ ID, ์•ฑ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ฐ€์ ธ์˜ค๊ธฐ

์ธ์ œ ์„ค์ •์€ ๋‹ค ํ–ˆ๊ณ  ํŒŒ์ด์–ด๋ฒ ์ด์Šค์—์„œ ์š”๊ตฌํ•˜๋Š” ์•ฑ ID, ์•ฑ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ ธ์˜ฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
๋จผ์ € ํŽ˜์ด์Šค๋ถ Developers์—์„œ ์„ค์ • -> ๊ธฐ๋ณธ ์„ค์ •์„ ๋ˆ„๋ฅด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•ฑ ID์™€ ์•ฑ ๋น„๋ฐ€๋ฒˆํ˜ธ์ธ ์•ฑ ์‹œํฌ๋ฆฟ ์ฝ”๋“œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ์•ฑ ์‹œํฌ๋ฆฟ ์ฝ”๋“œ๋Š” ๋ณด๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ฝ”๋“œ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ณ€๊ฒฝ ๋‚ด์šฉ ์ €์žฅ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐœ์ธ์ •๋ณด๋ฐฉ์นจ URL๊ณผ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ ์‚ญ์ œ URL๋“ฑ์„ ์ ์–ด์ฃผ๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์ €๋Š” ๊นƒํ—ˆ๋ธŒ ์ฃผ์†Œ๋ฅผ ์ ์–ด ์คฌ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์•ฑ ID์™€ ์•ฑ ์‹œํฌ๋ฆฟ ์ฝ”๋“œ๋ฅผ ํŒŒ์ด์–ด๋ฒ ์ด์Šค์— ๋‹ค ์ ์–ด์ค๋‹ˆ๋‹ค.๊ทธ๋ฆฌ๊ณ  ๋ฐ‘์— OAuth ๋ฆฌ๋””๋ ‰์…˜ URI๊ฐ€ ์žˆ๋Š”๋ฐ ๋ณต์‚ฌ๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค.

๋ณต์‚ฌ๋ฅผ ํ•œ ํ›„ ์™ผ์ชฝ ํƒญ์—์„œ Facebook ๋กœ๊ทธ์ธ -> ์„ค์ •์— ๋“ค์–ด๊ฐ€์„œ ๋ฐ‘์— ์œ ํšจํ•œ OAuth ๋ฆฌ๋””๋ ‰์…˜ URI ๋ถ€๋ถ„์— ๋ณต์‚ฌํ•œ OAuth ๋ฆฌ๋””๋ ‰์…˜ URI ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ๋ชจ๋“  ํ™˜๊ฒฝ ์„ค์ •์„ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ