使用 SMS Retriever API Android 的 OTP/SMS 自动获取问题

Posted

技术标签:

【中文标题】使用 SMS Retriever API Android 的 OTP/SMS 自动获取问题【英文标题】:OTP/SMS auto fetch issue using SMS Retriever API Android 【发布时间】:2019-08-08 12:37:39 【问题描述】:

我正在尝试使用 Google 的 SMS Retriever API 进行自动 SMS 验证,但其中存在问题。 以前,我正在使用getOriginatingAddress() 读取发件人号码,如果它是有效的发件人号码,则读取 OTP,否则不应读取消息。因为,转发的 OTP 会扰乱用户的隐私。

我有以下场景。

我的应用正在自动获取转发的 OTP 消息。

用户 A 在其手机上安装应用并输入用户 B 手机号码。 用户 B 收到 OTP 并将其转发给用户 A。 应用读取用户 A 手机上的 OTP 并转到主屏幕。

有什么办法可以得到发件人号码吗?

【问题讨论】:

【参考方案1】:

您无法使用 SMS Retriever API 实现发件人验证。

有一种解决方法可以在 SMSC 端处理这种情况。那就是与 SMSC 人员共享您的验证 SMS 的哈希码,以不转发或限制在 SMS 正文中包含该特定哈希码的 SMS。这不是一个好方法,但这是 SMS Retriever API 的唯一选择

虽然我会推荐另一种方法

Google 发布了另一个处理发件人验证的 API,但它的流程与 SMS Retriever API 不同,它被称为 SMS User Consent API 该 API 具有以下标准,用于发送消息并由设备自动获取

只有满足以下条件的消息才会触发广播:

    该消息包含一个 4-10 个字符的字母数字字符串,其中包含 at 至少一个数字。 消息是由不在用户的电话号码中发送的 联系人。 如果您指定了发件人的电话号码,则邮件由 那个号码。

希望对您有所帮助!

【讨论】:

以上是关于使用 SMS Retriever API Android 的 OTP/SMS 自动获取问题的主要内容,如果未能解决你的问题,请参考以下文章

SMS Retriever API - 永久监听器

Google SMS Retriever API 在土耳其不起作用

为啥 SMS Retriever API 在发布模式下不起作用?

如何使用 Google App 签名为 Sms Retriever 生成 11 个字符的哈希密钥

每次获取不同App的Hash String |短信检索 API

retriever.getFrameAtTime 不准确,如何获取视频截图?