error_code = $error_code; $message = $error_code; if ( $error_description !== '' ) { $message .= ': ' . $error_description; } parent::__construct( $message, $code, $previous ); } /** * Returns the OAuth error code. * * @return string */ public function get_error_code(): string { return $this->error_code; } /** * Creates an exception from a token endpoint response body. * * @param array $response_body The parsed JSON response. * @param int $status_code The HTTP status code. * * @return self */ public static function from_response( array $response_body, int $status_code = 0 ): self { return new self( ( $response_body['error'] ?? 'unknown_error' ), ( $response_body['error_description'] ?? '' ), $status_code, ); } }