채널
채널 인증 신청
채널별 인증을 신청하거나 다시 신청합니다. 다음 단계는 응답의 next_action으로 알 수 있습니다.
- 카카오는 채널을 만들기 전에 채널 관리자 휴대폰으로 인증번호를 보냅니다.
- 네이버톡톡은 확인 코드를 다시 발급합니다.
- 인스타그램은 인증 주소를 만듭니다. 새로 만들 때는
chat_channel_id없이, 연결된 채널의 자격을 갱신할 때는 대상 채널 ID를 넣어 요청합니다. - 라인, 위챗, 채널톡은 저장된 자격을 다시 확인하고 결과를
details에 담습니다. - SMS 채널은 인증을 신청하지 않습니다.
channel이sms이면 400CHAT_CHANNEL_OPERATION_UNSUPPORTED로 거절합니다.
POST
/
chat-channels
/
verification
채널 인증 신청
curl --request POST \
--url https://client-api.tryvox.co/v3/chat-channels/verification \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"channel": "kakao",
"params": {
"search_id": "<string>",
"channel_url": "<string>",
"phone_number": "<string>"
}
}
'import requests
url = "https://client-api.tryvox.co/v3/chat-channels/verification"
payload = {
"channel": "kakao",
"params": {
"search_id": "<string>",
"channel_url": "<string>",
"phone_number": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
channel: 'kakao',
params: {search_id: '<string>', channel_url: '<string>', phone_number: '<string>'}
})
};
fetch('https://client-api.tryvox.co/v3/chat-channels/verification', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://client-api.tryvox.co/v3/chat-channels/verification",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'channel' => 'kakao',
'params' => [
'search_id' => '<string>',
'channel_url' => '<string>',
'phone_number' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://client-api.tryvox.co/v3/chat-channels/verification"
payload := strings.NewReader("{\n \"channel\": \"kakao\",\n \"params\": {\n \"search_id\": \"<string>\",\n \"channel_url\": \"<string>\",\n \"phone_number\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://client-api.tryvox.co/v3/chat-channels/verification")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"channel\": \"kakao\",\n \"params\": {\n \"search_id\": \"<string>\",\n \"channel_url\": \"<string>\",\n \"phone_number\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://client-api.tryvox.co/v3/chat-channels/verification")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"channel\": \"kakao\",\n \"params\": {\n \"search_id\": \"<string>\",\n \"channel_url\": \"<string>\",\n \"phone_number\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"channel": "kakao",
"chat_channel_id": null,
"next_action": "register_with_received_code",
"details": {}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed.",
"details": {
"field": "name",
"reason": "must not be blank"
}
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"details": {}
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Permission denied.",
"details": {}
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found.",
"details": {
"resource": "agent"
}
}
}{
"error": {
"code": "CONFLICT",
"message": "The requested operation conflicts with current state.",
"details": {
"current_status": "draft"
}
}
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Too many requests.",
"details": {
"limit": 10,
"window_seconds": 1,
"scope": "user"
}
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error.",
"details": {}
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service temporarily unavailable.",
"details": {}
}
}Authorizations
Body
application/json
인증을 신청할 채널과 채널별 값입니다.
Response
성공 응답
- 카카오
- 네이버톡톡
- 인스타그램
- 라인
- 위챗
- 채널톡
Was this page helpful?
⌘I
채널 인증 신청
curl --request POST \
--url https://client-api.tryvox.co/v3/chat-channels/verification \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"channel": "kakao",
"params": {
"search_id": "<string>",
"channel_url": "<string>",
"phone_number": "<string>"
}
}
'import requests
url = "https://client-api.tryvox.co/v3/chat-channels/verification"
payload = {
"channel": "kakao",
"params": {
"search_id": "<string>",
"channel_url": "<string>",
"phone_number": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
channel: 'kakao',
params: {search_id: '<string>', channel_url: '<string>', phone_number: '<string>'}
})
};
fetch('https://client-api.tryvox.co/v3/chat-channels/verification', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://client-api.tryvox.co/v3/chat-channels/verification",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'channel' => 'kakao',
'params' => [
'search_id' => '<string>',
'channel_url' => '<string>',
'phone_number' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://client-api.tryvox.co/v3/chat-channels/verification"
payload := strings.NewReader("{\n \"channel\": \"kakao\",\n \"params\": {\n \"search_id\": \"<string>\",\n \"channel_url\": \"<string>\",\n \"phone_number\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://client-api.tryvox.co/v3/chat-channels/verification")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"channel\": \"kakao\",\n \"params\": {\n \"search_id\": \"<string>\",\n \"channel_url\": \"<string>\",\n \"phone_number\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://client-api.tryvox.co/v3/chat-channels/verification")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"channel\": \"kakao\",\n \"params\": {\n \"search_id\": \"<string>\",\n \"channel_url\": \"<string>\",\n \"phone_number\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"channel": "kakao",
"chat_channel_id": null,
"next_action": "register_with_received_code",
"details": {}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed.",
"details": {
"field": "name",
"reason": "must not be blank"
}
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"details": {}
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Permission denied.",
"details": {}
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found.",
"details": {
"resource": "agent"
}
}
}{
"error": {
"code": "CONFLICT",
"message": "The requested operation conflicts with current state.",
"details": {
"current_status": "draft"
}
}
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Too many requests.",
"details": {
"limit": 10,
"window_seconds": 1,
"scope": "user"
}
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error.",
"details": {}
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service temporarily unavailable.",
"details": {}
}
}