我们正在使用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进行精确定位。 请提供问题的解决方案。
答案 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;