exportcomments/exportcomments-php

Official PHP client for the ExportComments API. Export Social Media Comments from your PHP apps.

Maintainers

Package info

github.com/exportcomments/exportcomments-php

Homepage

Documentation

pkg:composer/exportcomments/exportcomments-php

Statistics

Installs: 323

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

dev-main 2026-02-23 19:23 UTC

This package is auto-updated.

Last update: 2026-03-29 00:48:58 UTC


README

Official PHP client for the ExportComments API v3. Export comments and reviews from 40+ social media and review platforms.

Requirements

  • PHP 7.4 or higher
  • JSON extension
  • cURL extension

Installation

Using Composer (Recommended)

composer require exportcomments/exportcomments-php

Manual Installation

git clone https://github.com/exportcomments/exportcomments-php.git

Then include the autoloader in your project:

require_once 'path/to/exportcomments-php/autoload.php';

Usage

<?php
require_once 'vendor/autoload.php';

$export = new ExportComments\Client('<YOUR API KEY HERE>');

Check API Connectivity

$res = $export->ping();
var_dump($res->result); // ['message' => 'pong']

Create Export

$data = array(
    'url' => 'https://www.instagram.com/p/ABC123/',
    'replies' => false,
    'limit' => 100
);
$res = $export->exports->createExport($data);
$guid = $res->result['guid'];

Check Export Status

$res = $export->exports->checkExport($guid);
$status = $res->result['status']; // 'queueing', 'progress', 'done', 'error'

Download Export File

// Download the Excel/CSV file for a completed job
$filePath = $export->exports->downloadExport($guid);
echo "Saved to: $filePath";

// Or specify a custom output path
$filePath = $export->exports->downloadExport($guid, '/path/to/output.xlsx');

Download Raw JSON Data

$data = $export->exports->downloadJson($guid);
foreach ($data as $comment) {
    echo $comment['message'] . ' - ' . $comment['author_name'] . "\n";
}

List Exports

$res = $export->exports->listExports($page = 1, $limit = 10);
var_dump($res->result);

Advanced Export Options

$data = array(
    'url' => 'https://twitter.com/user/status/123456789',
    'options' => array(
        'replies' => true,
        'limit' => 500,
        'vpn' => 'Norway',
        'cookies' => array(
            'auth_token' => 'your_twitter_auth_token'
        ),
        'minTimestamp' => 1622505600,
        'maxTimestamp' => 1625097600
    )
);
$res = $export->exports->createExport($data);

Error Handling

try {
    $res = $export->exports->createExport($data);
} catch (ExportComments\ExportCommentsException $e) {
    echo "Error: " . $e->getMessage();
}

Complete Example

<?php
require_once 'vendor/autoload.php';

$export = new ExportComments\Client('<YOUR API KEY HERE>');

// Verify connectivity
$export->ping();

// Create export
try {
    $res = $export->exports->createExport([
        'url' => 'https://www.instagram.com/p/ABC123/',
        'options' => ['replies' => true, 'limit' => 100]
    ]);
} catch (ExportComments\ExportCommentsException $e) {
    die("Error: " . $e->getMessage());
}

$guid = $res->result['guid'];

// Poll until done
while (true) {
    $res = $export->exports->checkExport($guid);
    $status = $res->result['status'];

    if ($status === 'done') break;
    if ($status === 'error') die("Error: " . $res->result['error']);

    sleep(5);
}

// Download the file
$filePath = $export->exports->downloadExport($guid);
echo "Downloaded: $filePath\n";

// Or get raw JSON data
$data = $export->exports->downloadJson($guid);
echo "Got " . count($data) . " comments\n";

Development

Running Tests

composer test

Code Style

composer cs-check
composer cs-fix

License

MIT - see LICENSE.txt for details.

Support