首页 > 解决方案 > 无效参数:SNS.optInPhoneNumber

问题描述

我正在尝试使用 AWS SNS 的optInPhoneNumber功能。但我收到了这个错误。

    InvalidParameter: Invalid parameter: 
    at Request.extractError 
    at Request.callListeners 
    at Request.emit 
    at Request.emit 
    at Request.transition 
    at AcceptorStateMachine.runTo 
    at 
    at Request.<anonymous> 
    at Request.<anonymous> 
    at Request.callListeners 
    at Request.emit 
    at Request.emit 
    at Request.transition 
    at AcceptorStateMachine.runTo 
    at Request.<anonymous> 
    at Request.<anonymous> 
    ....
  code: 'InvalidParameter',
  time: 2021-07-30T17:28:08.847Z,
  requestId: '23aa0a5d-7875-5438-b051-5323409d09f4',
  statusCode: 400,
  retryable: false,
  retryDelay: 4.786451228396071

这是我的代码。不用担心 return 语句。只是为了满足前端,我传递了一个硬编码的值。

import AWS from 'aws-sdk';
import { parsePhoneNumber } from 'libphonenumber-js';

export const optInPhoneNumber = async (phoneNumber: string) => {
  const client = new AWS.SNS({region: 'us-east-1'});

  const params = {
    phoneNumber: parsePhoneNumber(phoneNumber, 'US')?.format('E.164'),
  };

  client
    .optInPhoneNumber(params)
    .promise()
    .then(data => {
      console.log(data);
    })
    .catch(error => {
      console.log(error);
    });
  return {
    isError: false,
  };
};

编辑:通过phoneNumber:647-XXX-XXXX. 但是当我通过 phoneNumber 因为 647-XXX-XXX 是通过,这不是一个有效的号码。

任何帮助,将不胜感激

标签: javascriptnode.jstypescriptamazon-web-servicesamazon-sns

解决方案


您需要使用 E.164 格式。试试 +16470001234。

此处的文档中提到了它。


推荐阅读