首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Twilio查看电话号码是否已被列入黑名单

Twilio查看电话号码是否已被列入黑名单
EN

Stack Overflow用户
提问于 2014-08-12 08:35:06
回答 2查看 7.3K关注 0票数 12

我目前正在集成twilio rest api,需要对用户的电话号码执行检查,以确定该用户是否已将自己列入黑名单。我几乎没有使用这个api的经验,我浏览了所有的文档,google没有找到任何东西。

在我们的应用程序中,我们将有一个通知中心,如果用户将自己列入黑名单,我不想让他们有能力打开他们的短信通知。用户可能会打开短信通知,但twilio会阻止任何消息。我知道,当短信排队显示用户被列入黑名单(https://www.twilio.com/docs/api/rest/message)时,有能力从twilio获取状态代码。但是,我不会在通知屏幕上发送消息,我需要一种直接的方法(如果可能的话)来检查twilio,以确定某个号码是否被列入黑名单。任何帮助都是非常感谢的。如果更多的信息对我们有帮助,请告诉我。

EN

回答 2

Stack Overflow用户

发布于 2015-10-27 05:59:45

来自Twilio的梅根。

我很好奇您是否尝试过自己的变通方法。但我想为处于类似情况的其他人指出,如何捕获黑名单错误,然后随心所欲地处理它。

Ruby中,它看起来像这样:

代码语言:javascript
复制
require 'rubygems'
require 'twilio-ruby'

account_sid = 'YOUR_ACCOUNT_SID'
auth_token = 'YOUR_AUTH_TOKEN'

@client = Twilio::REST::Client.new account_sid, auth_token

begin
  @message = @client.messages.create(
    from: 'TWILIO_NUMBER',
    to: 'USER_NUMBER',
    body: 'Howdy!'
  )
rescue Twilio::REST::RestError => e
  if e.code == 21610
    # User is blacklisted
    # Store info however you choose
    puts e.message
  end
end

我们特别使用代码'21610‘检查黑名单。有关错误的更多信息,请访问reference page

希望这能有所帮助!

票数 16
EN

Stack Overflow用户

发布于 2019-12-24 00:20:29

Twilio建议开发人员将opt-out/in状态存储在自己的一侧。我已经把它存储在数据库中了。有两种方式可以收集未订阅用户列表。

1)使用短信webhook。您可以了解如何配置您的Twilio号码以接收webhook事件here

代码语言:javascript
复制
@PostMapping(value = "/twilio", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE,
            produces = MediaType.APPLICATION_ATOM_XML_VALUE)
    public String twilioConsumer(TwilioEventDTO twilioEventDTO) {
// twilioEventDTO.getBody() => returns the body of the SMS user replied.
        twilioService.consume(twilioEventDTO);
        return new MessagingResponse.Builder().build().toXml();
    }

2)由于我后来实现了webhooks,所以我必须收集已经取消订阅的用户。当您向已选择退出的号码发送短信时,Twilio API会抛出状态号为21610的异常。您可以捕获它并将号码存储在数据库中。

代码语言:javascript
复制
try {
            Message result = Message.creator(
                    new PhoneNumber(toPhoneNumber),
                    new PhoneNumber(fromPhoneNumber),
                    messageBody)
                    .create();

            response = result.getStatus().name();
        } catch (ApiException e) {
            if (e.getCode().equals(21610))
                updateSubscription(toPhoneNumber, false);
            logger.warn("Error on sending SMS: {}", e.getMessage());
        }

附注:用Java - Spring Boot框架编写的示例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25254499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档