PHP (cURL)
<?php
$clientId = 'YOUR_CLIENT_ID';
$clientSecret = 'YOUR_CLIENT_SECRET';
$code = $_GET['code'];
$ch = curl_init('https://ads.estaql.com/oauth/token');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'grant_type' => 'authorization_code',
'client_id' => $clientId,
'client_secret' => $clientSecret,
'code' => $code,
'redirect_uri' => 'YOUR_REDIRECT_URI'
]);
$response = json_decode(curl_exec($ch), true);
$accessToken = $response['access_token'];
// Fetch User Identity
$ch = curl_init('https://ads.estaql.com/api/user');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $accessToken,
'Accept: application/json'
]);
$user = json_decode(curl_exec($ch), true);
print_r($user);
?>
Node.js (Axios)
const axios = require('axios');
async function getAccessToken(code) {
const response = await axios.post('https://ads.estaql.com/oauth/token', {
grant_type: 'authorization_code',
client_id: 'YOUR_CLIENT_ID',
client_secret: 'YOUR_CLIENT_SECRET',
code: code,
redirect_uri: 'YOUR_REDIRECT_URI'
});
return response.data.access_token;
}
async function getUser(accessToken) {
const response = await axios.get('https://ads.estaql.com/api/user', {
headers: {
'Authorization': `Bearer ${accessToken}`,
'Accept': 'application/json'
}
});
return response.data;
}
Python (Requests)
import requests
def get_access_token(code):
url = "https://ads.estaql.com/oauth/token"
data = {
'grant_type': 'authorization_code',
'client_id': 'YOUR_CLIENT_ID',
'client_secret': 'YOUR_CLIENT_SECRET',
'code': code,
'redirect_uri': 'YOUR_REDIRECT_URI'
}
response = requests.post(url, data=data)
return response.json().get('access_token')
def get_user(access_token):
url = "https://ads.estaql.com/api/user"
headers = {
'Authorization': f'Bearer {access_token}',
'Accept': 'application/json'
}
response = requests.get(url, headers=headers)
return response.json()
C# (HttpClient)
using System.Net.Http;
using System.Threading.Tasks;
public async Task<string> GetAccessToken(string code) {
var client = new HttpClient();
var values = new Dictionary<string, string> {
{ "grant_type", "authorization_code" },
{ "client_id", "YOUR_CLIENT_ID" },
{ "client_secret", "YOUR_CLIENT_SECRET" },
{ "code", code },
{ "redirect_uri", "YOUR_REDIRECT_URI" }
};
var content = new FormUrlEncodedContent(values);
var response = await client.PostAsync("https://ads.estaql.com/oauth/token", content);
var responseString = await response.Content.ReadAsStringAsync();
// Parse JSON for access_token...
return responseString;
}
cURL
# 1. Exchange code for token
curl -X POST https://ads.estaql.com/oauth/token \
-d "grant_type=authorization_code" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET" \
-d "code=AUTHORIZATION_CODE" \
-d "redirect_uri=YOUR_REDIRECT_URI"
# 2. Call API with token
curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Accept: application/json" \
https://ads.estaql.com/api/user