如何使用php AWS-Sdk代码管理AWS Pinpoint的活动

时间:2017-09-06 10:53:34

标签: php amazon-web-services

我们正在使用AWS Pinpoint网络服务开发针对Android和iOS的推送通知。我们已在AWS pinpoint控制台中创建并启动了广告系列。 但我们希望从其他网络服务器管理细分,广告系列等,以便我们无需重复登录AWS控制台(客户的要求)。

对于这样的要求,我使用AWS php sdk来实现目标。我写的只是简单的代码

public static IList<RoleDto> GetRoles()
{
    var cpa = ((IContainerProviderAccessor)HttpContext.Current.ApplicationInstance);
    var scope = cpa.RequestLifetime; 

    var biz = scope.Resolve<IRoleBiz>();
    return biz.GetRoles();
}

但它会出现以下错误:

require_once 'aws-sdk/aws-autoloader.php';
use Aws\AwsClient;

$objClient = new Aws\AwsClient([
            'version'     => 'XXX',
            'region'      => 'XXX',
            'credentials' => [
                'key'    => 'XXX',
                'secret' => 'XXX'
            ]
        ]); 

我使用https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.Pinpoint.PinpointClient.html进行精确定位。 请提供问题的解决方案。

1 个答案:

答案 0 :(得分:2)

不确定如何实例化原始AWS客户端,但我猜测您是否提供"Pinpoint"作为它可能有效的service参数。

documentation provided一个Pinpoint客户端可以实例化并调用

require_once 'aws/aws-autoloader.php';

use Aws\Pinpoint\PinpointClient;

$client = PinpointClient::factory(array(
    'profile'=>'CREDENTIAL_PROFILE', //Or you can provide the raw credentials as you did in your sample
    'region'=>'us-east-1', 
    'version'=>'2016-12-01'
));
$result = $client->getApps();

print $result;