Sample code for 30+ languages & platforms
PHP ActiveX

SQS Receive Message

See more Amazon SQS Examples

Retrieves one or more messages from an Amazon SQS queue, with a maximum limit of 10 messages, from the specified queue.

See SQS ReceiveMessage or detailed information.

Chilkat PHP ActiveX Downloads

PHP ActiveX
<?php

$success = 0;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$rest = new COM("Chilkat.Rest");

// Connect to the Amazon AWS REST server.
// such as https://sqs.us-west-2.amazonaws.com/
$bTls = 1;
$port = 443;
$bAutoReconnect = 1;
$success = $rest->Connect('sqs.us-west-2.amazonaws.com',$port,$bTls,$bAutoReconnect);

// Provide AWS credentials for the REST call.
$authAws = new COM("Chilkat.AuthAws");
$authAws->AccessKey = 'AWS_ACCESS_KEY';
$authAws->SecretKey = 'AWS_SECRET_KEY';
// the region should match our URL above..
$authAws->Region = 'us-west-2';
$authAws->ServiceName = 'sqs';

$rest->SetAuthAws($authAws);

$rest->AddQueryParam('Action','ReceiveMessage');
$rest->AddQueryParam('MaxNumberOfMessages','5');
$rest->AddQueryParam('VisibilityTimeout','15');
$rest->AddQueryParam('AttributeName','All');
$rest->AddQueryParam('MessageAttributeName','All');

// Use the actual path part of your SQS queue URL here:
$responseXml = $rest->fullRequestNoBody('GET','/123456789123/chilkatTest');
if ($rest->LastMethodSuccess != 1) {
    print $rest->LastErrorText . "\n";
    exit;
}

// A successful response will have a status code equal to 200.
if ($rest->ResponseStatusCode != 200) {
    print 'response status code = ' . $rest->ResponseStatusCode . "\n";
    print 'response status text = ' . $rest->ResponseStatusText . "\n";
    print 'response header: ' . $rest->ResponseHeader . "\n";
    print 'response body: ' . $responseXml . "\n";
    exit;
}

// Examine the successful XML response.
$xml = new COM("Chilkat.Xml");
$xml->LoadXml($responseXml);
print $xml->getXml() . "\n";
print '----' . "\n";

// A successful response looks like this:
// <?xml version="1.0" encoding="utf-8" ?>
// <ReceiveMessageResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/">
//     <ReceiveMessageResult>
//         <Message>
//             <Body>this is a test</Body>
//             <MD5OfBody>54b0c58c7ce9f2a8b551351102ee0938</MD5OfBody>
//             <ReceiptHandle>AQEBMyLof...UbKBTvHtEg==</ReceiptHandle>
//             <Attribute>
//                 <Name>SenderId</Name>
//                 <Value>957491831129</Value>
//             </Attribute>
//             <Attribute>
//                 <Name>ApproximateFirstReceiveTimestamp</Name>
//                 <Value>1475013283557</Value>
//             </Attribute>
//             <Attribute>
//                 <Name>ApproximateReceiveCount</Name>
//                 <Value>4</Value>
//             </Attribute>
//             <Attribute>
//                 <Name>SentTimestamp</Name>
//                 <Value>1475013283557</Value>
//             </Attribute>
//             <MessageId>52882c65-5e21-4450-9024-93a3b01e61d3</MessageId>
//             <MD5OfMessageAttributes>2ff68603f4239272bd03f543254ed040</MD5OfMessageAttributes>
//         </Message>
//     </ReceiveMessageResult>
//     <ResponseMetadata>
//         <RequestId>05ba5c92-80ee-5f87-be76-0cf67b7475d6</RequestId>
//     </ResponseMetadata>
// </ReceiveMessageResponse>

// Get some values from the XML:
print 'Body: ' . $xml->chilkatPath('ReceiveMessageResult|Message|Body|*') . "\n";
print 'MessageId: ' . $xml->chilkatPath('ReceiveMessageResult|Message|MessageId|*') . "\n";

$unused = $xml->chilkatPath('ReceiveMessageResult|Message[0]|Attribute|$');

// rec is a Chilkat.Xml
$rec = $xml->FindNextRecord('Name','SenderId');
print 'SenderId: ' . $rec->getChildContent('Value') . "\n";

// rec is a Chilkat.Xml
$rec = $xml->FindNextRecord('Name','ApproximateFirstReceiveTimestamp');
print 'ApproximateFirstReceiveTimestamp: ' . $rec->getChildContent('Value') . "\n";

// rec is a Chilkat.Xml
$rec = $xml->FindNextRecord('Name','ApproximateReceiveCount');
print 'ApproximateReceiveCount: ' . $rec->getChildContent('Value') . "\n";

// rec is a Chilkat.Xml
$rec = $xml->FindNextRecord('Name','SentTimestamp');
print 'SentTimestamp: ' . $rec->getChildContent('Value') . "\n";

$xml->GetRoot2();

?>