| Server IP : 52.25.153.185 / Your IP : 216.73.217.131 Web Server : Apache System : Linux ip-172-26-6-158 5.10.0-35-cloud-amd64 #1 SMP Debian 5.10.237-1 (2025-05-19) x86_64 User : daemon ( 1) PHP Version : 8.1.10 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /bitnami/wordpress/wp-content/plugins/fluentformpro/src/Integrations/NewAirtable/ |
Upload File : |
<?php
namespace FluentFormPro\Integrations\NewAirtable;
if (!defined('ABSPATH')) {
exit; // Exit if accessed directly.
}
class API
{
protected $accessToken = null;
public $url = 'https://api.airtable.com/v0/';
public function __construct($settings)
{
$this->accessToken = 'Bearer ' . $settings['access_token'];
}
public function checkAuth()
{
return $this->makeRequest($this->url . 'meta/whoami');
}
public function getBases()
{
return $this->makeRequest($this->url . 'meta/bases');
}
public function getTables($baseId)
{
return $this->makeRequest($this->url . 'meta/bases/' . $baseId . '/tables');
}
public function makeRequest($url, $bodyArgs = [], $type = 'GET')
{
$request = [];
$headers = [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => $this->accessToken
];
if ($type == 'GET') {
$request = wp_remote_get($url, [
'headers' => $headers
]);
}
if ($type == 'POST') {
$request = wp_remote_post($url, [
'headers' => $headers,
'body' => $bodyArgs
]);
}
if (is_wp_error($request)) {
$code = $request->get_error_code();
$message = $request->get_error_message();
return new \WP_Error($code, $message);
}
$body = wp_remote_retrieve_body($request);
$body = \json_decode($body, true);
$code = wp_remote_retrieve_response_code($request);
if ($code == 200 || $code == 201) {
return $body;
} else {
return new \WP_Error($code,
isset($body['error']['type']) ? $body['error']['type'] . ': ' . $body['error']['message'] : $body['error']);
}
}
public function subscribe($subscriber, $baseId, $tableId)
{
$url = 'https://api.airtable.com/v0/' . $baseId . '/' . $tableId;
$post = \json_encode($subscriber, true);
return $this->makeRequest($url, $post, 'POST');
}
}