PHP code example of arquivei / intercom-php

1. Go to this page and download the library: Download arquivei/intercom-php library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

arquivei / intercom-php example snippets




use Intercom\IntercomClient;

$client = new IntercomClient(<insert_token_here>, null);

/** Create a user */
$client->users->create([
  "email" => "[email protected]",
  "custom_attributes" => ['foo' => 'bar']
]);

/** 
 * Update a user (Note: This method is an alias to the create method. In practice you 
 * can use create to update users if you wish)
 */
$client->users->update([
  "email" => "[email protected]",
  "custom_attributes" => ['foo' => 'bar']
]);

/** Delete a user by ID */
$client->users->deleteUser("570680a8a1bcbca8a90001b9");

/** Get a user by ID */
$client->users->getUser("570680a8a1bcbca8a90001b9");

/** Add companies to a user */
$client->users->create([
  "email" => "[email protected]",
  "companies" => [
    [
      "company_id" => "3"
    ]
  ]
]);

/** Remove companies from a user */
$client->users->create([
  "email" => "[email protected]",
  "companies" => [
    [
      "company_id" => "3",
      "remove" => true
    ]
  ]
]);

/** Find a single user by email */
$client->users->getUsers(["email" => "[email protected]"]);

/** List all users up to 10k records */
$client->users->getUsers([]);

/** 
 * List all users (even above 10k records)
 * The result object contains an array of your user objects and a scroll_param which you can then 
 * use to request the next 100 users. Note that the scroll parameter will time out after one minute 
 * and you will need to make a new request
 */
$client->users->scrollUsers();

/** 
 * Create a lead
 * See more options here: https://developers.intercom.io/reference#create-lead
 */
$client->leads->create([
  "email" => "[email protected]",
  "custom_attributes" => ['foo' => 'bar']
]);

/**
 * Update a lead (Note: This method is an alias to the create method. 
 * In practice you can use create to update leads if you wish)
 */
$client->leads->update([
  "email" => "[email protected]",
  "custom_attributes" => ['foo' => 'bar']
]);

/** 
 * List leads
 * See more options here: https://developers.intercom.io/reference#list-leads
 */
$client->leads->getLeads([]);

/** Find a lead by ID */
$client->leads->getLead("570680a8a1bcbca8a90000a9");

/** Delete a lead by ID */
$client->leads->deleteLead("570680a8a1bcbca8a90000a9");

/** Convert a Lead to a User */
$client->leads->convertLead([
  "contact" => [
    "user_id" => "8a88a590-e1c3-41e2-a502-e0649dbf721c"
  ],
  "user" => [
    "email" => "[email protected]"
  ]
]);

/** 
 * List all leads (even above 10k records)
 * The result object contains an array of your contacts objects and a scroll_param which you can then 
 * use to request the next 100 leads. Note that the scroll parameter will time out after one minute 
 * and you will need to make a new request
 */
$client->leads->scrollLeads();

/** Update a visitor */
$client->visitors->update([
  "user_id" => "8a88a590-e1c3-41e2-a502-e0649dbf721c",
  "custom_attributes" => ['foo' => 'bar']
]);

/** Find a visitor by ID */
$client->visitors->getVisitor("570680a8a1bcbca8a90000a9");

/** Find a visitor by User ID */
$client->visitors->getVisitor("", ["user_id" => "8a88a590-e1c3-41e2-a502-e0649dbf721c"]);

/** Delete a visitor by ID */
$client->visitors->deleteVisitor("570680a8a1bcbca8a90000a9");

/** Convert a Visitor to a Lead */
$client->visitors->convertVisitor([
  "visitor" => [
    "user_id" => "8a88a590-e1c3-41e2-a502-e0649dbf721c"
  ],
  "type" => "lead"
]);

/** Convert a Visitor to a User */
$client->visitors->convertVisitor([
  "visitor" => [
    "user_id" => "8a88a590-e1c3-41e2-a502-e0649dbf721c"
  ],
  "user" => [
    "email" => "[email protected]"
  ],
  "type" => "user"
]);

/** List tags */
$client->tags->getTags();

/** 
 * Tag users
 * See more options here: https://developers.intercom.io/reference#tag-or-untag-users-companies-leads-contacts
 */
$client->tags->tag([
  "name" => "Test",
  "users" => [
    ["id" => "1234"]
  ]
]);

/** List Segments */
$client->segments->getSegments();

/** View a segment */
$client->segments->getSegment("58a707924f6651b07b94376c");

/** View a segment with count */
$client->segments->getSegment("59c124f770e00fd819b9ce81", ["

/** Create an event */
$client->events->create([
  "event_name" => "testing",
  "created_at" => 1391691571,
  "email" => "[email protected]"
]);

/** View events for a user */
$client->events->getEvents(["email" => "[email protected]"]);

/** Create a company */
$client->companies->create([
  "name" => "foocorp", "company_id" => "3"
]);

/** 
 * Update a company (Note: This method is an alias to the create method. 
 * In practice you can use create to update companies if you wish)
 */
$client->companies->update([
  "name" => "foocorp", "id" => "3"
]);

/** Creating or Update a company with custom attributes. */
$client->companies->update([
  "name" => "foocorp",
  "id" => "3",
  "custom_attributes" => [
    "foo" => "bar",
    "baz" => "qux"
  ]
]);

/** List Companies */
$client->companies->getCompanies([]);

/** List admins */
$client->admins->getAdmins();

/** 
 * Send a message from an admin to a user
 * See more options here: https://developers.intercom.io/reference#conversations
 */
$client->messages->create([
  "message_type" => "inapp",
  "subject" => "Hey",
  "body" => "Ponies, cute small horses or something more sinister?",
  "from" => [
    "type" => "admin",
    "id" => "1234"
  ],
  "to" => [
    "type" => "user",
    "email" => "[email protected]"
  ]
]);

/** 
 * List conversations for an admin
 * See more options here: https://developers.intercom.io/reference#list-conversations
 */
$client->conversations->getConversations([
  "type" => "admin",
  "admin_id" => "25610"
]);

/** Get a single conversation */
$client->conversations->getConversation("1234")

/** Get a single conversation with plaintext comments */
$client->conversations->getConversation("1234", [
  "display_as" => "plaintext"
])

/** 
 * Reply to a conversation
 * See more options here: https://developers.intercom.io/reference#replying-to-a-conversation
 */
$client->conversations->replyToConversation("5678", [
  "email" => "[email protected]",
  "body" => "Thanks :)",
  "type" => "user",
  "message_type" => "comment"
]);

/** 
 * Reply to a user's last conversation
 * See more options here: https://developers.intercom.com/reference#replying-to-users-last-conversation
 */
$client->conversations->replyToLastConversation([
  "email" => "[email protected]",
  "body" => "Thanks :)",
  "type" => "user",
  "message_type" => "comment"
]);

/** 
 * Mark a conversation as read
 * See API documentation here: https://developers.intercom.io/reference#marking-a-conversation-as-read
 */
$client->conversations->markConversationAsRead("7890");

/** 
 * List counts
 * See more options here: https://developers.intercom.io/reference#getting-counts
 */
$client->counts->getCounts([])

/** Create a note */
$client->notes->create([
  "admin_id" => "21",
  "body" => "Text for my note",
  "user" => [
    "id" => "5310d8e8598c9a0b24000005"
  ]
]);

/** List notes for a user */
$client->notes->getNotes([
  "user_id" => "25"
]);

/** Get a single Note by id */
$client->notes->getNote("42");

$client->nextPage($response->pages);

use GuzzleHttp\Exception\ClientException;

try {
  $user = $client->users->getUser("570680a8a1bcbca8a90001b9");
} catch(ClientException $e) {
  $response = $e->getResponse();
  $statusCode = $response->getStatusCode();
  if ($statusCode == '404') {
    // Handle 404 error
    return;
  } else {
    throw $e;
  }
}

$ curl -sS https://getcomposer.org/installer | php

$ php composer.phar 

$rate_limit = $intercom->getRateLimitDetails();
print("{$rate_limit['remaining']} {$rate_limit['limit']} \n");
print_r($rate_limit['reset_at']->format(DateTime::ISO8601));


ntercom\IntercomClient;

$intercom= new IntercomClient(getenv('AT'), null);
$resp = $intercom->users->scrollUsers([]);
#var_dump($resp);
$count = 1;
echo "PAGE $count: " . sizeof($resp->users);
echo "\n";
while (!empty($resp->scroll_param && sizeof($resp->users) > 0)){
    $count = ++$count;
    $resp = $intercom->users->scrollUsers(["scroll_param" => $resp->scroll_param]);
    echo "PAGE $count: " . sizeof($resp->users);
    echo "\n";
}