无效参数:SNS.optInPhoneNumber

Invalid Parameter: 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 时,这不是有效号码。

如有任何帮助,我们将不胜感激

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

mentioned in the docs here

有效的 phone 号码格式如下:

phone号码 - 要查找的 phone 手机号码(例如,+1XXX5550100)。\n\n";

使用这种格式,它会适合你。

我发现我选择了一个号码并试图重新选择加入。但是在文档中,它说您可以每 30 天选择一个数字