我是推送通知的新手,并且对此非常感兴趣。我们有 AWS SNS(简单推送通知)和 AWS Pinpoint。
我对 AWS 的这些服务感到困惑。
如果您有任何想法,请告诉我。
提前谢谢您!
我想通过电子邮件或短信向特定用户(仅一个)发送验证码.我已经通过Amazon SES成功完成了这项工作,但我尚未尝试通过亚马逊短信.我发现自己正在调查AWS Pinpoint的兔子洞.
在我看来,Pinpoint适用于大量用户消息(文本/电子邮件),而不是单个消息传递.我希望我能正确地收集它.
我的问题是,在我的用例中使用Pinpoint而不是Amazon SES和SMS是否有优势/劣势?
问题说明:
我正在使用此AWS Amplify 文档在我的 React-Native 应用程序中实现推送通知,并且使用 iOS 部分进行测试失败并显示错误“不变违规:本机模块不能为空”,但是如果我测试(即获取设备令牌并发送推送通知)它工作的 Android 部分。我在 iOS 上看到的错误截图如下所示:
到目前为止我尝试过的:
根据this github post,我还尝试安装以下内容:
@react-native-community/push-notification-ios
npm 安装 aws-amplify@unstable
这个模块 ( aws-amplify@unstable ) 引入了一个错误,说TypeError: undefined is not an object (evaluating '_core.Amplify.register')所以我决定摆脱它。
目前我已经离开了我的 package.json 如下:
"dependencies": {
"@aws-amplify/pushnotification": "^1.1.4",
"@aws-amplify/analytics": "^1.3.3",
"@react-native-community/netinfo": "^5.7.0",
"@react-native-community/push-notification-ios": "^1.2.0",
"amazon-cognito-identity-js": "^4.2.1",
"aws-amplify": "^1.2.4",
"aws-amplify-react-native": "^4.2.0",
"axios": "^0.19.2",
"cache": "^2.3.1",
"react": "16.9.0",
"react-native": "^0.62.2"
} …
Run Code Online (Sandbox Code Playgroud) 我试图通过aws精确点将电子邮件发送到特定的电子邮件地址.我的电子邮件地址已经过验证.但是,每当我尝试发送电子邮件时,它都会向我显示"无法向其提交电子邮件"的错误.我不明白我在哪里弄错了.
我需要我的iOS应用程序来读取从外部设备发送的文本消息,并根据收到的消息执行某些任务,而无需任何主要的用户干预.我完全清楚,无法从iOS应用程序自动读取收到的短信内容.所以我想知道有没有其他方法可以将文本消息转换为推送消息,然后将其发送到iOS应用程序.
我需要将其实现为自动阅读文本消息,然后相应地执行,而无需在Android中进行任何用户交互.
我需要在iOS应用程序中实现此功能,如果不是与Android中的完全相同.
我也听说过像twilio,nexmo,sinch,plivo等服务提供了类似的功能.但我没有考虑这些,因为它们装载了一些重要的功能,我的用例非常小.
我只想要一种服务,它可以将收到的短信转换为推送通知,然后将其传送到iOS设备.
任何帮助都很明显.
我正在研究与移动分析相关的 AWS 服务,因为我们使用 AWS 作为后端基础设施,现在想了解如何最好地利用 Pinpoint 和/或 Kinesis 将事件存储在 S3 中以供以后分析。
Pinpoint 提供分析并具有一些标准事件和自定义事件。这些保留期为 90 天,但允许与 Kinesis 连接以无限期存储事件: https: //docs.aws.amazon.com/pinpoint/latest/userguide/analytics-streaming.html
这听起来不错。
我还在 AWS Amplify 的网站上看到可以使用 Pinpoint 和 Kinesis 完成分析: https://aws-amplify.github.io/docs/ios/analytics#analytics
不清楚是否也可以在没有 Pinpoint 的情况下完成分析以及具体情况如何?看起来它只是提供了将任何数据从移动设备发送到 Kinesis 流的可能性,而不是分析。正确的?
我预计,如果使用 Pinpoint 收集标准和自定义事件,它已经可以最佳地完成 Kinesis 如何优化性能和电池中描述的所有内容。因此,如果使用与 Kinesis 连接的 Pinpoint(在 Pinpoint 设置中),则所有这些都已提供,因此不需要从移动设备直接连接 Kinesis。正确的?
如果有人对此或相关经验有深入的了解,如果您分享它,我会很高兴,因为尚不清楚到底要期待什么。谢谢!
amazon-web-services amazon-kinesis amazon-mobile-analytics aws-pinpoint amazon-kinesis-firehose
我有一个后端构建iOS应用程序通过MobileHub
使用API Gateway
,Lambda
和DynamoDB
。我注意到 的SNS
功能MobileHub
已被 取代Pinpoint
,我想使用此新服务创建一个通知系统。
当用户通过 新建帖子时API Gateway
,将触发 lambda 函数,我想我可以通过 向订阅者发送通知Pinpoint
。但是我在.net的官方网站上找不到任何示例或参考文档Pinpoint
。
你有这个场景的任何资源或任何想法吗?非常感谢!
amazon-web-services node.js aws-lambda aws-cognito aws-pinpoint
我正在使用 AWS Cognito 配置 AWS Pinpoint,希望能够跟踪应用程序内的用户活动 - 每日活跃用户、每月活跃用户等。但是,在阅读文档后,将 Pinpoint 项目与应用程序客户端相关联在用户池中,为 Cognito - Pinpoint 通信创建 IAM 角色,并选择“与 Amazon Pinpoint 共享用户配置文件数据”,Pinpoint 控制台似乎只跟踪特定于终端节点的数据(每日活动终端节点、每月活动终端节点等) ) 和身份验证指标(登录、注册等)。那么,我的问题如下:如何配置 Cognito 以将用户 ID 与端点相关联,以便可以跟踪诸如每日活跃用户、每月活跃用户和新用户之类的用户活动。
根据此页面上的文档:https : //docs.aws.amazon.com/pinpoint/latest/developerguide/integrate-endpoints.html
“当适用于 iOS 和 Android 的 AWS 移动开发工具包向 Amazon Pinpoint 注册终端节点时,Amazon Cognito 会自动从用户池中分配一个用户 ID。”
下面是 Pinpoint 控制台当前状态的屏幕截图。
任何帮助,将不胜感激。
谢谢,
JB
在我工作的公司中,我被要求使用 AWS 的新推送通知服务 Amazon Pinpoint 进行一些测试。
我决定遵循亚马逊的教程,教如何构建一个能够记录笔记的简单应用程序。它很简单并且工作完美,所以我决定继续学习我的新简单程序来接收推送通知。
问题是,我从来没有用Java编程过,所以,在遵循这个的过程中,我陷入了最后一步。我真的不确定将这部分代码放在哪里:
import com.amazonaws.mobileconnectors.pinpoint.PinpointConfiguration;
import com.amazonaws.mobileconnectors.pinpoint.PinpointManager;
import com.google.android.gms.gcm.GoogleCloudMessaging;
import com.google.android.gms.iid.InstanceID;
public class MainActivity extends AppCompatActivity {
public static final String LOG_TAG = MainActivity.class.getSimpleName();
public static PinpointManager pinpointManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (pinpointManager == null) {
PinpointConfiguration pinpointConfig = new PinpointConfiguration(
getApplicationContext(),
AWSMobileClient.getInstance().getCredentialsProvider(),
AWSMobileClient.getInstance().getConfiguration());
pinpointManager = new PinpointManager(pinpointConfig);
new Thread(new Runnable() {
@Override
public void run() {
try {
String deviceToken =
InstanceID.getInstance(MainActivity.this).getToken(
"123456789Your_GCM_Sender_Id",
GoogleCloudMessaging.INSTANCE_ID_SCOPE);
Log.e("NotError", …
Run Code Online (Sandbox Code Playgroud) 作为我正在进行的一些测试的一部分,我回复了一条通过 Amazon Pinpoint 服务发送的 SMS 消息。我收到了我已被从进一步通知中删除的确认信息。
我想选择重新接收这些消息,但我不知道该怎么做。我查看了 Pinpoint 文档,但没有找到可行的方法。我查看了 Amazon Pinpoint 控制台,但没有找到从黑名单中删除号码的方法。我尝试过其他 SMS 提供商使用的标准术语,例如 UNSTOP、UNBLOCK 和 START,但这些都不起作用。有没有人有什么建议。除非必要,否则我不想就此联系亚马逊支持人员。
我正在尝试通过设置一个根据示例文档执行 Lambda 函数的 CampaignHook 来为我的 AWS Pinpoint 项目创建一个(测试版)自定义通道。
我的 lambda 函数似乎可以单独正常工作。但是,当我将 CampaignHook 指向 lambda 函数时,我收到此错误:
> aws lambda add-permission --function-name arn:aws:lambda:us-east-1:my-account-id:function:MyFunctionName \
--statement-id s1 \
--action lambda:InvokeFunction \
--principal pinpoint.us-east-1.amazonaws.com \
--source-arn 'arn:aws:mobiletargeting:us-east-1:my-account-id:/apps/my-pinpoint-project-id/campaigns/*'
=>
{
"Statement": "{\"Sid\":\"s1\",\"Effect\":\"Allow\",\"Principal\": {\"Service\":\"pinpoint.us-east-1.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-east-1:my-account-id:function:MyFunctionName\",\"Condition\":{\"ArnLike\":{\"AWS:SourceArn\":\"arn:aws:mobiletargeting:us-east-1:my-account-id:/apps/my-pinpoint-project-id/campaigns/*\"}}}"
}
> aws pinpoint update-application-settings \
--application-id my-pinpoint-project-id \
--write-application-settings-request '{\"CampaignHook\": { \"LambdaFunctionName\": \"arn:aws:lambda:us-east-1:my-account-id:function:MyFunctionName\", \"Mode\": \"DELIVERY\" }}'
=> An error occurred (BadRequestException) when calling the UpdateApplicationSettings operation: Could not properly invoke Lambda function specified in hook.
Run Code Online (Sandbox Code Playgroud)
我的函数是用 C# 编写的,处理程序的签名是:
> …
Run Code Online (Sandbox Code Playgroud) 我有一个 android 应用程序,我正在尝试通过 Amazon Pinpoint 向它发送推送通知。
然后我使用相同的 API 密钥精确设置 FCM 推送通知,并使用他们的“测试消息”工具进行测试。
我收到了通过测试消息传递工具、CLI 和从我的 Rails 应用程序发送的 FCM 消息的成功响应,但它们都没有出现在 FCM 控制台中,也没有到达设备。
我在设置中注意到的唯一与文档不匹配的是 Pinpoint 似乎没有任何地方可以添加Sender ID,只有 API 密钥。(但是,我不确定发件人 ID 是否真的需要,因为我可以直接使用 API 密钥发送 POST 请求,而 FCM 会得到它......也许这已经过时了??)
如果由于某种原因实际上需要发件人 ID,它会在哪里输入?
我正在尝试通过 Amplify SDK 将 Pinpoint Analytics 实施到现有的 React Native 应用程序中。我们现有的用户群拥有自己的 authN 和 authZ 实现,因此我们不需要(更重要的是,负担不起)Cognito 用户池。
一方面,Pinpoint API 在记录事件时不需要与 Cognito 进行任何集成,但是amplify 文档auth
在使用时似乎需要插件analytics
,并且auth
在配置 Amplify 时需要一个参数。
Amplify.configure({
// To get the AWS Credentials, you need to configure
// the Auth module with your Cognito Federated Identity Pool
Auth: {
identityPoolId: 'us-east-1:xxx-xxx-xxx-xxx-xxx',
region: 'us-east-1'
},
Analytics: {
// OPTIONAL - disable Analytics if true
disabled: false,
...
Run Code Online (Sandbox Code Playgroud)
有没有办法analytics
通过 Amplify使用而不生成用户池?我试过检查 AWS 移动开发工具包,但它们显然已被弃用,现在大多数文档都指向 Amplify。我们可以直接使用 Pinpoint …
aws-pinpoint ×13
amazon-sns ×2
aws-amplify ×2
aws-lambda ×2
amazon-iam ×1
amazon-ses ×1
aws-cognito ×1
ios ×1
java ×1
messaging ×1
node.js ×1
react-native ×1
swift ×1
testing ×1
twilio ×1