2017 © Pedro Pelรกez
 

library kakao-api

kakao api for laravel 5

image

pouu69/kakao-api

kakao api for laravel 5

  • Friday, February 23, 2018
  • by pouu69
  • Repository
  • 4 Watchers
  • 5 Stars
  • 84 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 3 Forks
  • 0 Open issues
  • 6 Versions
  • 6 % Grown

The README.md

deprecated project

KakaoApi

๋ผ๋ผ๋ฒจ์—์„œ ์‚ฌ์šฉํ•  ๋ผ๋ผ๋ฒจ์šฉ Kakao API ๊ฐ€ ์—†๊ธธ๋ž˜ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ช‡๋ช‡ API ๋งŒ ๋งŒ๋“ค์–ด ๋ดค์Šต๋‹ˆ๋‹ค., (*1)

  • Kakao API for Laravel 5
  • ์นด์นด์˜ค ์‚ฌ์šฉ์ž ์ •๋ณด, ์นด์นด์˜ค ์Šคํ† ๋ฆฌ ํฌ์ŠคํŒ… ๋ช‡๊ฐœ๋งŒ api๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

require

```` php "guzzlehttp/guzzle": "^6.0", "php": ">=5.5.0", (*2)


# Installation ํ”„๋กœ์ ํŠธ์— ์žˆ๋Š” composer.json์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ ํ•˜์‹œ๊ฑฐ๋‚˜, ```` php { "require": { "pouu69/kakao-api": "^1.0" } }

composer ๋ฅผ ์ด์šฉํ•˜์—ฌ ์„ค์น˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค., (*3)

```` php composer require pouu69/kakao-api, (*4)


# ServiceProvider `config/app.php`์— ์•„๋ž˜ ์™€ ๊ฐ™์ด providers์— ๋“ฑ๋ก์„ ํ•ฉ๋‹ˆ๋‹ค. ```` php 'providers' => [ pouu69\KakaoApi\KakaoServiceProvider::class, ]

Facade

Facade ๋“ฑ๋ก์„ ํ†ตํ•ด alias๋ฅผ ๋“ฑ๋ก ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถ”๊ฐ€ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค., (*5)

```` php 'aliases' => [ 'Kakao' => pouu69\KakaoApi\Facade\KakaoFacade::class, ];, (*6)


# config `config` ํด๋”์— config ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์„ ๊ฐ€์ง„ `kakao.php` ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ```` php <?php return [ 'AUTH_URL' => 'https://kauth.kakao.com', 'API_URL' => 'https://kapi.kakao.com', 'API_VERSION' => '/v1', 'REDIRECT_URL' => env('KAKAO_URL',''), 'API_KEY' => env('KAKAO_KEY', ''), 'ADMIN_KEY' => env('KAKAO_ADMIN_KEY', ''), ];

.env ์— kakao์—์„œ ๋ฐœ๊ธ‰๋ฐ›์€ KEY ์™€ REDIRECT_URL์„ ๋“ฑ๋ก ํ•ด๋†“์Šต๋‹ˆ๋‹ค., (*7)

์ œ๊ณตํ•˜๋Š” Kakao API

  • ๊ธฐ๋ณธ ์นด์นด์˜ค ์‚ฌ์šฉ์ž API
    • ๋กœ๊ทธ์ธ
    • ๋กœ๊ทธ์•„์›ƒ
    • ์‚ฌ์šฉ์ž ํ† ํฐ ๋ฐœ๊ธ‰
    • ์‚ฌ์šฉ์ž ํ† ํฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฐ ์ •๋ณด ์–ป๊ธฐ
    • ์‚ฌ์šฉ์ž ํ† ํฐ ๊ฐฑ์‹ 
    • ์‚ฌ์šฉ์ž ์ •๋ณด ์š”์ฒญ
  • ์นด์นด์˜ค ์Šคํ† ๋ฆฌ API
    • ์‚ฌ์šฉ์ž ํ™•์ธ
    • ๊ธ€ ํฌ์ŠคํŒ…(only ๊ธ€)
    • ์‚ฌ์ง„(photo) ํฌ์ŠคํŒ…
    • ์‚ฌ์ง„ ์—…๋กœ๋“œ
    • ํผ๋ธ”๋ฆฌ์‹ฑ(ํฌ์ŠคํŒ…)

API ์‚ฌ์šฉ

๊ธฐ๋ณธ ์„ค์ •

```` php // ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์—๋‹ค๊ฐ€ ๋“ฑ๋ก use Kakao;, (*8)


## ์นด์นด์˜ค ๋กœ๊ทธ์ธ / ์‚ฌ์šฉ์ž ํ† ํฐ ๋ฐœ๊ธ‰ / ์‚ฌ์šฉ์ž ์ •๋ณด ์š”์ฒญ ์ฟผ๋ฆฌํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•œ ๋ฐฐ์—ด์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ```` php try{ $url = Kakao::getLogin(); return redirect()->to($url); }catch(Exception $e){ var_dump('kakaoLogin error : ',$e->getMessage()); }
  • ์ฝœ๋ฐฑ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๋ฉ”์„œ๋“œ

```` php $code = $request->input()['code']; // $code ๋Š” ์ฝœ๋ฐฑ URL์— ์ฟผ๋ฆฌ๋กœ ๋“ค์–ด์˜จ authorize_code ์ด๋‹ค., (*9)

// ์นด์นด์˜ค ๋กœ๊ทธ์ธ ์ดํ›„ ๋ฐœ๊ธ‰ ๋ฐ›์€ authorize_code ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค. $result = Kakao::postAccessToken($code);, (*10)

if(($result['code'] < 200 || $result['code'] > 206)){ // ์—๋Ÿฌ ๋ฐœ์ƒ // $result['body']['error_description'] ์—๋Ÿฌ๋ฉ”์„ธ์ง€ }, (*11)

if(!empty($result['contents']->access_token)){ $accessToken = $result['contents']->access_token; $refreshToken = $result['contents']->refresh_token;, (*12)

// ์‚ฌ์šฉ์ž ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ
$credentials = Kakao::getCredential($accessToken);

//token ์„ธ์…˜ ์ €์žฅ( ๋ณธ์ธ์— ๋งž๊ฒŒ ์ˆ˜ํ–‰ )
Session::put('kakao_access_token', $accessToken);
Session::put('kakao_refresh_token',$refreshToken);

// ์—ฌ๊ธฐ์„œ ๋กœ๊ทธ์ธ ์ž‘์—…์ด๋‚˜, ์‚ฌ์šฉ์ž DB ์ž‘์—… ์ˆ˜ํ–‰

}, (*13)


## ๋กœ๊ทธ์•„์›ƒ - ์„ธ์…˜์„ ํ˜„์žฌ ํ•ด๋‹น ๊ธฐ๊ธฐ๋งŒ ํ•ด์ œ ํ•ด์ค๋‹ˆ๋‹ค. ```` php $result = Kakao::postLogout($accessToken);

์‚ฌ์šฉ์ž ํ† ํฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฐ ์ •๋ณด ์–ป๊ธฐ / ์‚ฌ์šฉ์ž ํ† ํฐ ๊ฐฑ์‹ 

  • access_token ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ (12~24์‹œ๊ฐ„์ด ๋Œ€๋ถ€๋ถ„ ๋งŒ๋ฃŒ์‹œ๊ฐ„์ด๊ธฐ ๋•Œ๋ฌธ์—)
  • refresh_token ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ํ† ํฐ์„ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค.

```` php if(session()->has('kakao_access_token') && session()->has('kakao_refresh_token')){ $kakaoAccessToken = session()->get('kakao_access_token'); $accessTokenInfo = Kakao::getInfoAccessToken($kakaoAccessToken); if($accessTokenInfo['code'] !== 200){ $tokens = Kakao::postRefreshToken($kakaoAccessToken); if($token['code']!== 200){ // error handling }else{ Session::put('kakao_access_token', $tokens['contents']->access_token); if(isset($tokens['contents']->refresh_token)){ Session::put('kakao_refresh_token',$tokens['contents']->refresh_token); } } } }, (*14)


## ์นด์นด์˜ค ์Šคํ† ๋ฆฌ API - ์‚ฌ์šฉ์ž ํ™•์ธ - ์นด์นด์˜ค ์Šคํ† ๋ฆฌ ์‚ฌ์šฉ์ž ์ธ์ง€ ํ™•์ธ ```` php try{ // ์นด์นด์˜ค์Šคํ† ๋ฆฌ ์‚ฌ์šฉ์ž ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. $result = Kakao::isStoryUser(session()->get('kakao_access_token')); $this->response($result)['contents']; return $result; }catch(Exception $e){ $error = json_decode($e->getMessage()); // error handling }

์นด์นด์˜ค ์Šคํ† ๋ฆฌ API - ๊ธ€ ํฌ์ŠคํŒ…(only ๊ธ€)

  • ์˜ค๋กœ์ง€ ๊ธ€๋งŒ ํฌ์ŠคํŒ… ํ•ฉ๋‹ˆ๋‹ค.

```` php try{ $content = '์ด๊ฒƒ์ด ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.'; $result = Kakao::postNote($content, session()->get('kakao_access_token')); }catch(\Exception $e){ var_dump($e->getMessage()); }, (*15)


## ์นด์นด์˜ค ์Šคํ† ๋ฆฌ API - ์‚ฌ์ง„ ํฌ์ŠคํŒ… ### ์‚ฌ์ง„ ์—…๋กœ๋“œ > ํ•ญ์ƒ ์‚ฌ์ง„์„ ์—…๋กœ๋“œ ํ•œ ์ดํ›„์— ํฌ์ŠคํŒ… ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ```` php // ์˜ฌ๋ฆด ์‚ฌ์ง„๋“ค์„ guzzle์ด ์›ํ•˜๋Š” ํฌ๋งท์— ๋งž๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. $imageUrl = [] $i = 0; foreach($images as $imagePath){ $fileDir = // ์ด๋ฏธ์ง€๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋กœ์ปฌ ์ ˆ๋Œ€ ๊ฒฝ๋กœ $fileName = // ์ด๋ฏธ์ง€ ์ด๋ฆ„ $file = [ 'name' => 'file['.$i++.']', 'contents' => fopen($fileDir,'r'), 'filename' => $fileName ]; $imageUrl[] = $file; } try{ // ์œ„์—์„œ ์ž‘์—…ํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋„˜๊ธฐ๋ฉฐ, ์ด๋ฏธ์ง€๋ฅผ ์นด์นด์˜ค์— ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. $result = Kakao::postImageUpload($imageUrl, session()->get('kakao_access_token')); return $this->response($result)['contents'];// ์—ฌ๊ธฐ์— ์‹ค์ œ ์—…๋กœ๋“œ ํ• ๋•Œ ํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” throw exception ๋Œ }catch(Exception $e){ throw new Exception($e->getMessage()); }

ํผ๋ธ”๋ฆฌ์‹ฑ(ํฌ์ŠคํŒ…)

  • ์œ„ ์‚ฌ์ง„ ์—…๋กœ๋“œ ์ž‘์—… ์ด์–ด์„œ ์ง„ํ–‰

```` php try{ // request data ํ˜•์‹ $data = [ 'image_url_list' => $imageUrlInfos, 'content' => '๋ฉ”์„ธ์ง€ ์ž‘์„ฑํ•˜๊ธฐ', 'permission' => // ํฌ์ŠคํŒ… ํ•  ์Šคํ† ๋ฆฌ๋ฅผ ์ „์ฒด ๊ณต๊ฐœํ• ์ง€ ์นœ๊ตฌ ๊ณต๊ฐœํ• ์ง€ ์—ฌ๋ถ€. F : ์นœ๊ตฌ์—๊ฒŒ๋งŒ ๊ณต๊ฐœ, A : ์ „์ฒด ๊ณต๊ฐœ, M : ๋‚˜๋งŒ ๋ณด๊ธฐ , ๊ธฐ๋ณธ๊ฐ’์€ A.
];, (*16)

// ์ด์ œ ์ตœ์ข… ํผ๋ธ”๋ฆฌ์‹ฑ ํ•˜๊ธฐ
$result = Kakao::postPhoto($data, session()->get('kakao_access_token'));
return $this->response($result);

}catch(Exception $e){ throw new Exception($e->getMessage()); } ````, (*17)

License

The MIT License (MIT)., (*18)

The Versions

23/02 2018

dev-master

9999999-dev

kakao api for laravel 5

  Sources   Download

MIT

The Requires

 

by KwanUng

23/11 2016

1.0.x-dev

1.0.9999999.9999999-dev

kakao api for laravel 5

  Sources   Download

MIT

The Requires

 

by KwanUng

23/11 2016

1.0.4

1.0.4.0

kakao api for laravel 5

  Sources   Download

MIT

The Requires

 

by KwanUng

17/11 2016

1.0.3

1.0.3.0

kakao api for laravel 5

  Sources   Download

MIT

The Requires

 

by KwanUng

17/11 2016

1.0.2

1.0.2.0

kakao api for laravel 5

  Sources   Download

MIT

The Requires

 

by KwanUng

17/11 2016

1.0.1

1.0.1.0

kakao api for laravel 5

  Sources   Download

MIT

The Requires

 

by KwanUng