簡體   English   中英

我想使用golang gin-gonic服務器發送驗證碼短信

[英]I want to send verification code SMS by using golang gin-gonic server

在我的產品中,我必須驗證用戶的電話號碼。 為此,我想使用短信發送驗證碼但是,我找不到使用 golang 發送驗證碼的參考資料

  • 這是我的代碼
package main

import (
    "fmt"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/sns"
)

func main() {

    fmt.Println("creating session")
    sess := session.Must(session.NewSession(&aws.Config{
        Region: aws.String("ap-northeast-1"),
    }))
    fmt.Println("session created")

    svc := sns.New(sess)
    fmt.Println("service created")

    params := &sns.PublishInput{
        Message: aws.String("testing 123"),         
        PhoneNumber: aws.String(<"myPhoneNumber">), 
    }
    resp, err := svc.Publish(params)

    if err != nil {
        // Print the error, cast err to awserr.Error to get the Code and
        // Message from an error.
        fmt.Println(err.Error())
        return
    }

    // Pretty-print the response data.
    fmt.Println(resp)
}

我得到了這個回應

creating session
session created
service created
{
   MessageId: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX" 
}

但是消息沒有到達我這里。 另外,我不知道如何使用 MessageId 作為響應來檢查結果

我可以得到一些參考嗎? 還是我需要先了解其他功能? 請幫我

我只是搜索了很多詞,比如“aws SMS using golang”,“aws verification code SMS golang”但是它對我不起作用

================================================ ==========

  • 這是我第二次嘗試,使用 JS! 但它也沒有用
let { SNSClient } = require("@aws-sdk/client-sns");
let { PublishCommand } = require("@aws-sdk/client-sns");

// Set the AWS Region.
const REGION = "ap-northeast-1"; //e.g. "us-east-1"
// Create SNS service object.
const snsClient = new SNSClient({ region: REGION });

// Set the parameters
const params = {
  Message: "test please" /* required */,
  PhoneNumber: "+821012345678", //PHONE_NUMBER, in the E.164 phone number structure
};

const run = async () => {
  try {
    const data = await snsClient.send(new PublishCommand(params));
    console.log("Success.", data);
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err.stack);
  }
};
run();
  • 這是 JS 的回應
Success. {
  '$metadata': {
    httpStatusCode: 200,
    requestId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
    extendedRequestId: undefined,
    cfId: undefined,
    attempts: 1,
    totalRetryDelay: 0
  },
  MessageId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
  SequenceNumber: undefined
}

請先檢查電話號碼。 你的代碼似乎是正確的。

AWS SNS SMS 遵循E.164格式。

接收消息的電話號碼。 這必須是 E.164 格式。 例如,美國電話號碼可能是 +12065550101

你可以在這里閱讀更多

從上面的鏈接:

發送 SMS 消息時,請使用 E.164 格式指定電話號碼。 E.164 是用於國際電信的電話號碼結構標准。 遵循此格式的電話號碼最多可包含 15 位數字,並且以加號 (+) 和國家/地區代碼作為前綴。 例如,E.164 格式的美國電話號碼將顯示為 +1XXX5550100。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM