PHP SES on PHP错误:无法确定要授权的服务/操作名称

I am trying to send email using AWS SES using the following PHP script:

<?php

    require_once("phar://aws.phar");
    use Aws\Ses\SesClient;

    //Open client
    $client = SesClient::factory(array(
        "key" => "key",
        "secret" => "secret",
        "region" => "region"
    ));

    $subject = "subject";
    $messageText = "text message";
    $messageHtml = "<h1>formatted message</h1>";

    //Send email
    try{

        $response = $client->sendEmail(
            array(
                'Source' => 'verified_email@domain.com',
                'Destination' => array(
                    'ToAddresses' => array('an_address@domain.com')
                ),
                'Message' => array(
                    'Subject' => array('Data' => $subject), 
                    'Body' => array('Text' => array('Data' => $messageText)), 
                    'Html' => array('Data' => $messageHtml)
                )
            )
        );

    }catch(Exception $e){
        //An error happened and the email did not get sent
         echo($e->getMessage());
    }
?>

Whenever I run this, it goes to the catch clause and prints to the screen the message:

Unable to determine service/operation name to be authorized

This doesn't really give me any information on what's wrong and there's no documentation on the API page about this. Any ideas?