네이버톡톡
네이버톡톡 연결 생성
중지 상태의 연결과 15분간 유효한 확인 코드를 생성합니다. API 서버 주소에 webhook_path를 붙인 URL을 네이버 파트너센터에 등록한 뒤 고객 대화창에서 확인 코드를 보내세요. 토큰을 저장하는 것만으로 연결 확인이나 활성화가 완료되지는 않습니다.
POST
/
navertalk-connections
네이버톡톡 연결 생성
curl --request POST \
--url https://client-api.tryvox.co/v3/navertalk-connections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"partner_id": "<string>",
"display_name": "<string>",
"agent": {
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agent_version": "current"
},
"access_token": "<string>"
}
'import requests
url = "https://client-api.tryvox.co/v3/navertalk-connections"
payload = {
"partner_id": "<string>",
"display_name": "<string>",
"agent": {
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agent_version": "current"
},
"access_token": "<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({
partner_id: '<string>',
display_name: '<string>',
agent: {agent_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', agent_version: 'current'},
access_token: '<string>'
})
};
fetch('https://client-api.tryvox.co/v3/navertalk-connections', 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/navertalk-connections",
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([
'partner_id' => '<string>',
'display_name' => '<string>',
'agent' => [
'agent_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'agent_version' => 'current'
],
'access_token' => '<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/navertalk-connections"
payload := strings.NewReader("{\n \"partner_id\": \"<string>\",\n \"display_name\": \"<string>\",\n \"agent\": {\n \"agent_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"agent_version\": \"current\"\n },\n \"access_token\": \"<string>\"\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/navertalk-connections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"partner_id\": \"<string>\",\n \"display_name\": \"<string>\",\n \"agent\": {\n \"agent_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"agent_version\": \"current\"\n },\n \"access_token\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://client-api.tryvox.co/v3/navertalk-connections")
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 \"partner_id\": \"<string>\",\n \"display_name\": \"<string>\",\n \"agent\": {\n \"agent_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"agent_version\": \"current\"\n },\n \"access_token\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"partner_id": "<string>",
"display_name": "<string>",
"agent": {
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agent_version": "current"
},
"status": "active",
"revision": 123,
"webhook_path": "<string>",
"verified_at": 123,
"verification_expires_at": 123,
"last_received_at": 123,
"last_error_code": "<string>",
"created_at": 123,
"updated_at": 123,
"verification_code": "<string>"
}{
"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
BearerAuthSupabaseJwtBearer
조직 API 키를 Authorization: Bearer <token> 형식으로 보냅니다.
Headers
Supabase JWT 인증을 사용할 때 필수인 organization UUID입니다. 조직 API key는 해당 key의 조직 범위를 사용합니다.
Body
application/json
이 엔드포인트의 요청 데이터입니다.
네이버 파트너 ID. 표시 및 파트너센터 링크에 사용하며 계정 소유 증명은 아닙니다.
Required string length:
1 - 255연결 표시 이름
Required string length:
1 - 255agent_id와 agent_version으로 구성된 에이전트 매핑 객체입니다.
Show child attributes
Show child attributes
네이버 Authorization 토큰. 응답에는 반환하지 않습니다.
Required string length:
1 - 4096Response
성공 응답
응답 객체 자체의 ID 또는 중첩 설정 객체 안의 로컬 ID입니다.
agent_id와 agent_version으로 구성된 에이전트 매핑 객체입니다.
Show child attributes
Show child attributes
리소스의 현재 상태입니다.
Available options:
active, disabled, disconnected API 서버 origin에 붙여 네이버 웹훅 URL로 등록할 경로
리소스 생성 시각입니다. unix milliseconds 형식입니다.
리소스 마지막 수정 시각입니다. unix milliseconds 형식입니다.
15분 안에 네이버 고객 대화창에서 직접 보낼 일회용 연결 확인 코드
Was this page helpful?
⌘I
네이버톡톡 연결 생성
curl --request POST \
--url https://client-api.tryvox.co/v3/navertalk-connections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"partner_id": "<string>",
"display_name": "<string>",
"agent": {
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agent_version": "current"
},
"access_token": "<string>"
}
'import requests
url = "https://client-api.tryvox.co/v3/navertalk-connections"
payload = {
"partner_id": "<string>",
"display_name": "<string>",
"agent": {
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agent_version": "current"
},
"access_token": "<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({
partner_id: '<string>',
display_name: '<string>',
agent: {agent_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', agent_version: 'current'},
access_token: '<string>'
})
};
fetch('https://client-api.tryvox.co/v3/navertalk-connections', 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/navertalk-connections",
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([
'partner_id' => '<string>',
'display_name' => '<string>',
'agent' => [
'agent_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'agent_version' => 'current'
],
'access_token' => '<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/navertalk-connections"
payload := strings.NewReader("{\n \"partner_id\": \"<string>\",\n \"display_name\": \"<string>\",\n \"agent\": {\n \"agent_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"agent_version\": \"current\"\n },\n \"access_token\": \"<string>\"\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/navertalk-connections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"partner_id\": \"<string>\",\n \"display_name\": \"<string>\",\n \"agent\": {\n \"agent_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"agent_version\": \"current\"\n },\n \"access_token\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://client-api.tryvox.co/v3/navertalk-connections")
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 \"partner_id\": \"<string>\",\n \"display_name\": \"<string>\",\n \"agent\": {\n \"agent_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"agent_version\": \"current\"\n },\n \"access_token\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"partner_id": "<string>",
"display_name": "<string>",
"agent": {
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agent_version": "current"
},
"status": "active",
"revision": 123,
"webhook_path": "<string>",
"verified_at": 123,
"verification_expires_at": 123,
"last_received_at": 123,
"last_error_code": "<string>",
"created_at": 123,
"updated_at": 123,
"verification_code": "<string>"
}{
"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": {}
}
}