freee API 시작하기(OAuth2 인증을 통해 사용자 정보 얻기)
개시하다
2016년 12월 3일에 저는 Startup weekend Tokyo Fintech#2의 게임'freee API Hackson'에 참가했습니다.프리 여러분의 성원에 프리의 API를 가르쳐 주셨습니다.
해커슨 당일회계 소프트웨어freee공개된 API까지 쓸 수 있을 때까지 시간이 조금 걸렸기 때문에 메모를 남겼다.
미리 준비하다
API 문서에서 발췌
API 문서에서 발췌
freee 서명.
응용 프로그램 목록부터 새 응용 프로그램 등록을 시작합니다.
시험해 보다
코드
[주의]
<?php
define( 'APP_ID', 'APPIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' );
define( 'APP_SECRET', 'SECRETxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' );
define( 'APP_CALLBACK', 'http://http://192.168.110.202//freee20161204/sample.php' );
//※注意:APP_CALLBACKの値は、freeeのアプリケーション一覧に登録されている
// コールバックURIと同じにする必要があります。
// (1) いちばん最初の処理。OAuth2の入り口。
if( empty( $_GET ) )
{
printf('<html><a href="%s?client_id=%s&redirect_uri=%s&response_type=code">認証開始</a></html>',
'https://secure.freee.co.jp/oauth/authorize', //認証用
APP_ID,
urlencode( APP_CALLBACK )
);
}
// (2) freeeで「許可する」が押されたあとに実行する処理
if( ! empty( $_GET['code'] ) )
{
$content = [
"code" => $_GET['code'],
"grant_type" => "authorization_code",
"client_id" => APP_ID,
"client_secret" => APP_SECRET,
"redirect_uri" => APP_CALLBACK,
];
$curl = curl_init( 'https://api.freee.co.jp/oauth/token.json' ); //認証済みToken取得用
curl_setopt( $curl, CURLOPT_POST, TRUE );
curl_setopt( $curl, CURLOPT_POSTFIELDS, http_build_query( $content ) );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true);
$jsonToken = curl_exec($curl);
$token = json_decode( $jsonToken, true );
var_dump( $token );
}
// (3) Token取得後の処理。各種APIの実行
if( ! is_null( $token['access_token'] ) )
{
$header = [
'Authorization: Bearer ' . $token['access_token'],
];
$curl = curl_init( 'https://api.freee.co.jp/api/1/users/me?companies=true' ); //自分の情報
curl_setopt( $curl, CURLOPT_HTTPHEADER, $header );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true);
$jsonResult = curl_exec($curl);
$result = json_decode( $jsonResult, true );
var_dump( $result );
}
동작 결과
(1) 첫 번째 처리.OAuth2의 입구입니다.
(2)freee에서 "허가"를 누르면 실행하는 처리
(3) Token 취득 후 처리.다양한 API 실행
(2)의 아래 부분.자신의 정보를 얻었다
가장 적합한 곳
이 사무소 ID는freee에 로그인할 때 회사 이름을 누르면 표시되는 숫자(xxxxx-yyy-zzz)가 아닙니다.Users(사용자) 및 Companies(사무소)를 사용하여 얻은 값이 필요합니다.
최후
이번 주말(12월 09일~11일) 개최Startup Weekend Tokyo Fintech #2freee 데이터를 방문하고 싶을 때 조금만 참고해 주시면 좋겠습니다.
Reference
이 문제에 관하여(freee API 시작하기(OAuth2 인증을 통해 사용자 정보 얻기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yyano/items/716e9bac571ed2b132f8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(freee API 시작하기(OAuth2 인증을 통해 사용자 정보 얻기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yyano/items/716e9bac571ed2b132f8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)