AgentSkillsCN

telnyx-verify-go

查询电话号码信息(运营商、类型、主叫方姓名),并通过短信/语音 OTP 验证用户。适用于电话验证和数据丰富。本技能提供 Ruby SDK 示例。

SKILL.md
--- frontmatter
name: telnyx-verify-go
description: >-
  Look up phone number information (carrier, type, caller name) and verify users
  via SMS/voice OTP. Use for phone verification and data enrichment. This skill
  provides Go SDK examples.
metadata:
  author: telnyx
  product: verify
  language: go

Telnyx Verify - Go

Installation

bash
go get github.com/team-telnyx/telnyx-go

Setup

go
import (
  "context"
  "fmt"

  "github.com/team-telnyx/telnyx-go"
  "github.com/team-telnyx/telnyx-go/option"
)

client := telnyx.NewClient(
  option.WithAPIKey(os.Getenv("TELNYX_API_KEY")),
)

All examples below assume client is already initialized as shown above.

Lookup phone number data

Returns information about the provided phone number.

GET /number_lookup/{phone_number}

go
numberLookup, err := client.NumberLookup.Get(
  context.TODO(),
  "+18665552368",
  telnyx.NumberLookupGetParams{

  },
)
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", numberLookup.Data)

Trigger Call verification

POST /verifications/call — Required: phone_number, verify_profile_id

go
createVerificationResponse, err := client.Verifications.TriggerCall(context.TODO(), telnyx.VerificationTriggerCallParams{
  PhoneNumber: "+13035551234",
  VerifyProfileID: "12ade33a-21c0-473b-b055-b3c836e1c292",
})
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", createVerificationResponse.Data)

Trigger Flash call verification

POST /verifications/flashcall — Required: phone_number, verify_profile_id

go
createVerificationResponse, err := client.Verifications.TriggerFlashcall(context.TODO(), telnyx.VerificationTriggerFlashcallParams{
  PhoneNumber: "+13035551234",
  VerifyProfileID: "12ade33a-21c0-473b-b055-b3c836e1c292",
})
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", createVerificationResponse.Data)

Trigger SMS verification

POST /verifications/sms — Required: phone_number, verify_profile_id

go
createVerificationResponse, err := client.Verifications.TriggerSMS(context.TODO(), telnyx.VerificationTriggerSMSParams{
  PhoneNumber: "+13035551234",
  VerifyProfileID: "12ade33a-21c0-473b-b055-b3c836e1c292",
})
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", createVerificationResponse.Data)

Retrieve verification

GET /verifications/{verification_id}

go
verification, err := client.Verifications.Get(context.TODO(), "12ade33a-21c0-473b-b055-b3c836e1c292")
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", verification.Data)

Verify verification code by ID

POST /verifications/{verification_id}/actions/verify

go
verifyVerificationCodeResponse, err := client.Verifications.Actions.Verify(
  context.TODO(),
  "12ade33a-21c0-473b-b055-b3c836e1c292",
  telnyx.VerificationActionVerifyParams{

  },
)
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", verifyVerificationCodeResponse.Data)

List verifications by phone number

GET /verifications/by_phone_number/{phone_number}

go
byPhoneNumbers, err := client.Verifications.ByPhoneNumber.List(context.TODO(), "+13035551234")
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", byPhoneNumbers.Data)

Verify verification code by phone number

POST /verifications/by_phone_number/{phone_number}/actions/verify — Required: code, verify_profile_id

go
verifyVerificationCodeResponse, err := client.Verifications.ByPhoneNumber.Actions.Verify(
  context.TODO(),
  "+13035551234",
  telnyx.VerificationByPhoneNumberActionVerifyParams{
    Code: "17686",
    VerifyProfileID: "12ade33a-21c0-473b-b055-b3c836e1c292",
  },
)
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", verifyVerificationCodeResponse.Data)

List all Verify profiles

Gets a paginated list of Verify profiles.

GET /verify_profiles

go
page, err := client.VerifyProfiles.List(context.TODO(), telnyx.VerifyProfileListParams{

})
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", page)

Create a Verify profile

Creates a new Verify profile to associate verifications with.

POST /verify_profiles — Required: name

go
verifyProfileData, err := client.VerifyProfiles.New(context.TODO(), telnyx.VerifyProfileNewParams{
  Name: "Test Profile",
})
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", verifyProfileData.Data)

Retrieve Verify profile

Gets a single Verify profile.

GET /verify_profiles/{verify_profile_id}

go
verifyProfileData, err := client.VerifyProfiles.Get(context.TODO(), "12ade33a-21c0-473b-b055-b3c836e1c292")
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", verifyProfileData.Data)

Update Verify profile

PATCH /verify_profiles/{verify_profile_id}

go
verifyProfileData, err := client.VerifyProfiles.Update(
  context.TODO(),
  "12ade33a-21c0-473b-b055-b3c836e1c292",
  telnyx.VerifyProfileUpdateParams{

  },
)
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", verifyProfileData.Data)

Delete Verify profile

DELETE /verify_profiles/{verify_profile_id}

go
verifyProfileData, err := client.VerifyProfiles.Delete(context.TODO(), "12ade33a-21c0-473b-b055-b3c836e1c292")
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", verifyProfileData.Data)

Retrieve Verify profile message templates

List all Verify profile message templates.

GET /verify_profiles/templates

go
response, err := client.VerifyProfiles.GetTemplates(context.TODO())
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", response.Data)

Create message template

Create a new Verify profile message template.

POST /verify_profiles/templates — Required: text

go
messageTemplate, err := client.VerifyProfiles.NewTemplate(context.TODO(), telnyx.VerifyProfileNewTemplateParams{
  Text: "Your {{app_name}} verification code is: {{code}}.",
})
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", messageTemplate.Data)

Update message template

Update an existing Verify profile message template.

PATCH /verify_profiles/templates/{template_id} — Required: text

go
messageTemplate, err := client.VerifyProfiles.UpdateTemplate(
  context.TODO(),
  "12ade33a-21c0-473b-b055-b3c836e1c292",
  telnyx.VerifyProfileUpdateTemplateParams{
    Text: "Your {{app_name}} verification code is: {{code}}.",
  },
)
if err != nil {
  panic(err.Error())
}
fmt.Printf("%+v\n", messageTemplate.Data)