実行結果' ; // 「許可」の場合 if( isset( $_GET['code'] ) && !empty( $_GET['code'] ) && is_string( $_GET['code'] ) ) { // リクエストボディ $params = array( 'client_id' => $client_id , 'client_secret' => $client_secret , 'redirect_uri' => $callback_uri , 'code' => $_GET['code'] , 'grant_type' => 'authorization_code' , ) ; // リクエスト用のコンテキスト $context = array( 'http' => array( 'method' => 'POST' , 'content' => http_build_query( $params ) , ) ) ; // cURLでリクエスト $curl = curl_init() ; curl_setopt( $curl , CURLOPT_URL , 'https://api.bufferapp.com/1/oauth2/token.json' ) ; curl_setopt( $curl , CURLOPT_HEADER, 1 ) ; curl_setopt( $curl , CURLOPT_CUSTOMREQUEST , $context['http']['method'] ) ; // メソッド curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER , false ) ; // 証明書の検証を行わない curl_setopt( $curl , CURLOPT_RETURNTRANSFER , true ) ; // curl_execの結果を文字列で返す curl_setopt( $curl , CURLOPT_POSTFIELDS , $context['http']['content'] ) ; // リクエストボディ curl_setopt( $curl , CURLOPT_TIMEOUT , 5 ) ; // タイムアウトの秒数 $res1 = curl_exec( $curl ) ; $res2 = curl_getinfo( $curl ) ; curl_close( $curl ) ; // 取得したデータ $json = substr( $res1, $res2['header_size'] ) ; // 取得したデータ(JSONなど) $header = substr( $res1, 0, $res2['header_size'] ) ; // レスポンスヘッダー (検証に利用したい場合にどうぞ) // JSONをオブジェクト型に変換する $obj = json_decode( $json ) ; // エラー判定 if( !isset( $obj->access_token ) ) { // アクセストークンが取得できなかった $error = 'アクセストークンを上手く取得できませんでした…' ; } else { // アクセストークンを[$access_token]に代入する $access_token = $obj->access_token ; // HTMLで出力する $html .= '
' ; $html .= '
アクセストークン
' ; $html .= '
' . $access_token . '
' ; $html .= '
' ; } } // 「拒否」の場合 elseif( isset( $_GET['error'] ) ) { // 「許可」してくれなかったことに文句を言う $error = 'なんで「許可」してくれなかったんですか!?' ; } // 初回アクセスの場合 else { // ユーザーを認証画面に移動させる header( 'Location: https://bufferapp.com/oauth2/authorize?client_id=' . $client_id . '&response_type=code&redirect_uri=' . rawurlencode( $callback_uri ) ) ; } // エラーの場合 if( isset( $error ) && !empty( $error ) ) { $html = '

' . $html . 'もう一度、認証をするには、こちらをクリックして下さい。

' ; } // 取得したデータ $html .= '

取得したデータ

' ; $html .= '

下記のデータを取得できました。

' ; $html .= '

JSON

' ; $html .= '

' ; $html .= '

レスポンスヘッダー

' ; $html .= '

' ; ?> Buffer APIでOAuth2.0認証をするサンプルデモ

配布元: Syncer