Aws amplify 如何使用Amazon Amplify SDK为我的Android应用程序用户以编程方式发送短信?

Aws amplify 如何使用Amazon Amplify SDK为我的Android应用程序用户以编程方式发送短信?,aws-amplify,aws-amplify-sdk-android,Aws Amplify,Aws Amplify Sdk Android,我想在我的应用程序用户使用其电话号码注册时,向他们的电话号码发送欢迎信息(SMS)。我找不到这个特殊任务的官方文档。不确定发送短信是否是一项服务,Amazon Amplify提供 但是你可以使用类似于向手机发送短信(以及更多)的服务。AWS Amplify可以通过与Amazon Pinpoint集成,帮助你设置短信、电子邮件和向用户发送通知。请查看此处的文档: Amazon Pinpoint允许您创建用户细分、消息模板、活动(包括A/B测试和金丝雀)、旅程(仅限于目前为止的电子邮件)以及其他许多

我想在我的应用程序用户使用其电话号码注册时,向他们的电话号码发送欢迎信息(SMS)。我找不到这个特殊任务的官方文档。

不确定发送短信是否是一项服务,Amazon Amplify提供


但是你可以使用类似于向手机发送短信(以及更多)的服务。

AWS Amplify可以通过与Amazon Pinpoint集成,帮助你设置短信、电子邮件和向用户发送通知。请查看此处的文档:


Amazon Pinpoint允许您创建用户细分、消息模板、活动(包括A/B测试和金丝雀)、旅程(仅限于目前为止的电子邮件)以及其他许多内容。您可以使用AWS Amplify对其进行集成和配置,但AWS Amplify仍然不支持我提到的一些功能,您必须使用AWS控制台进行配置,或者使用AWS SDK与您的应用程序集成。您可以利用AWS Amplify Auth模块获得有效的Cognito令牌,该令牌将允许您直接与Amazon Pinpoint交互。

Amazon允许您这样做。假设您正在使用Cognito注册,您将希望使用确认后Cognito lambda触发器

  • 通过AWS控制台设置您的SNS帐户,以发送SMS消息。通过控制台向自己发送测试消息

  • 运行
    放大身份验证更新

  • 当进入问题
    是否要为Cognito配置Lambda触发器?
    ,回答,然后选择
    确认后
    触发器

  • 您需要向lambda授予SNS(SMS)权限。更新
    postconfimation cloudformation template.json
    文件,在
    Resources.lambdaexecutionpolicy.Properties.PolicyDocument.statement
    下添加新语句:

    {
    "Resources": {
        "lambdaexecutionpolicy": {
            "Properties": {
                "PolicyDocument": {
                    "Statement": [
                        {
                            "Effect": "Allow",
                            "Action": "sns:*",
                            "Resource": "*"
                        }
                    ]
                    ...
                }
            ...
            }
        ...
        }  
    ...
    }
    ...
    }
    
  • 将此代码用于触发器:

    var aws=require('aws-sdk');
    var sms=新的aws.SNS();
    exports.handler=(事件、上下文、回调)=>{
    console.log(事件);
    if(event.request.userAttributes.phone_number){
    sendSMS(event.request.userAttributes.phone_号码,“恭喜”+event.userName+”,您已确认:“,功能(状态){
    //返回亚马逊Cognito
    回调(null,事件);
    });
    }否则{
    //无事可做,用户的电话号码未知
    回调(null,事件);
    }
    };
    函数sendSMS(收件人、消息、完成回调){
    常量参数={
    消息:消息,/*必需*/
    电话号码:至
    };
    sns.publish(参数、函数(错误、数据){
    如果(错误){
    console.log(err,err.stack);//发生错误
    }否则{
    控制台日志(数据);
    }
    已完成的回拨(“已发送短信”);
    })
    };