Skip to content

Latest commit

 

History

History
289 lines (206 loc) · 11.6 KB

File metadata and controls

289 lines (206 loc) · 11.6 KB

Dm

Overview

Available Operations

status

Retrieves the Direct Message (DM) availability status for a list of users. This endpoint checks if the specified accounts can receive messages based on their privacy settings, follow status, or verified permissions.

Example Usage

declare(strict_types=1);

require 'vendor/autoload.php';

use XapiScraper;

$sdk = XapiScraper\XapiScraper::builder()
    ->setSecurity(
        '<YOUR_BEARER_TOKEN_HERE>'
    )
    ->build();

$request = [
    '1696160451770429440',
];

$response = $sdk->dm->status(
    request: $request
);

if ($response->dmStatusResponseV2 !== null) {
    // handle response
}

Parameters

Parameter Type Required Description
$request array ✔️ The request object to use for the request.

Response

?Operations\DmStatusResponse

Errors

Error Type Status Code Content Type
Errors\HTTPValidationError 422 application/json
Errors\APIException 4XX, 5XX */*

send

Send DM via XChat encrypted chat API (1:1 or existing group g...), optional image via media_urls (max 1) or video via video_url (mutually exclusive). $0.001 per call.

Example Usage

declare(strict_types=1);

require 'vendor/autoload.php';

use XapiScraper;
use XapiScraper\Models\Components;

$sdk = XapiScraper\XapiScraper::builder()
    ->setSecurity(
        '<YOUR_BEARER_TOKEN_HERE>'
    )
    ->build();

$request = new Components\SendDmV3Query(
    recipient: 'baker_donn80196',
    text: 'hello from docs',
    mediaUrls: [
        'https://example.com/image.jpg',
    ],
    videoUrl: 'https://video.twimg.com/amplify_video/2077160248830275584/vid/avc1/320x568/kwNDLTm',
    pin: '1234',
    cookie: 'ct0=abc123... or 2c4a4e1832096aa694c739b83c83b6d96d43eba7',
    proxy: 'http://username:password@ip:port',
);

$response = $sdk->dm->send(
    request: $request
);

if ($response->sendDmResponse !== null) {
    // handle response
}

Parameters

Parameter Type Required Description
$request Components\SendDmV3Query ✔️ The request object to use for the request.

Response

?Operations\DmSendResponse

Errors

Error Type Status Code Content Type
Errors\HTTPValidationError 422 application/json
Errors\APIException 4XX, 5XX */*

history

Get DM history via XChat encrypted chat API. Use count for page size (10–200). Set all=true to follow has_more and return every page. Or paginate manually: when has_more is true, pass the oldest message's sequence_id as before.

Example Usage

declare(strict_types=1);

require 'vendor/autoload.php';

use XapiScraper;
use XapiScraper\Models\Components;

$sdk = XapiScraper\XapiScraper::builder()
    ->setSecurity(
        '<YOUR_BEARER_TOKEN_HERE>'
    )
    ->build();

$request = new Components\GetDmHistoryV3Query(
    recipient: '1928096185664843776:1989842918455291904',
    pin: '1234',
    count: 50,
    all: false,
    before: '2076684837654876160',
    cookie: 'ct0=abc123... or 2c4a4e1832096aa694c739b83c83b6d96d43eba7',
    proxy: 'http://username:password@ip:port',
);

$response = $sdk->dm->history(
    request: $request
);

if ($response->getDmHistoryV3Response !== null) {
    // handle response
}

Parameters

Parameter Type Required Description
$request Components\GetDmHistoryV3Query ✔️ The request object to use for the request.

Response

?Operations\DmHistoryResponse

Errors

Error Type Status Code Content Type
Errors\HTTPValidationError 422 application/json
Errors\APIException 4XX, 5XX */*

media

Fetch one XChat media attachment and return a playable URL. Use conversation_id, media_hash_key, and optional key_version from /v3/twitter/dm-history attachments.

Example Usage

declare(strict_types=1);

require 'vendor/autoload.php';

use XapiScraper;
use XapiScraper\Models\Components;

$sdk = XapiScraper\XapiScraper::builder()
    ->setSecurity(
        '<YOUR_BEARER_TOKEN_HERE>'
    )
    ->build();

$request = new Components\GetDmMediaV3Query(
    conversationId: '1928096185664843776:1989842918455291904',
    mediaHashKey: 'blRIlZCVIO',
    keyVersion: '3',
    typeName: 'VIDEO',
    filename: 'clip.mp4',
    pin: '1234',
    cookie: 'ct0=abc123... or 2c4a4e1832096aa694c739b83c83b6d96d43eba7',
    proxy: 'http://username:password@ip:port',
);

$response = $sdk->dm->media(
    request: $request
);

if ($response->getDmMediaV3Response !== null) {
    // handle response
}

Parameters

Parameter Type Required Description
$request Components\GetDmMediaV3Query ✔️ The request object to use for the request.

Response

?Operations\DmMediaResponse

Errors

Error Type Status Code Content Type
Errors\HTTPValidationError 422 application/json
Errors\APIException 4XX, 5XX */*

conversations

Get XChat conversation list. Use count for page size (10–200). Set all=true to follow the inbox cursor and return every conversation.

Example Usage

declare(strict_types=1);

require 'vendor/autoload.php';

use XapiScraper;
use XapiScraper\Models\Components;

$sdk = XapiScraper\XapiScraper::builder()
    ->setSecurity(
        '<YOUR_BEARER_TOKEN_HERE>'
    )
    ->build();

$request = new Components\GetConversationsV3Query(
    count: 100,
    all: true,
    cookie: 'ct0=abc123... or 2c4a4e1832096aa694c739b83c83b6d96d43eba7',
    proxy: 'http://username:password@ip:port',
);

$response = $sdk->dm->conversations(
    request: $request
);

if ($response->getConversationsV3Response !== null) {
    // handle response
}

Parameters

Parameter Type Required Description
$request Components\GetConversationsV3Query ✔️ The request object to use for the request.

Response

?Operations\DmConversationsResponse

Errors

Error Type Status Code Content Type
Errors\HTTPValidationError 422 application/json
Errors\APIException 4XX, 5XX */*