curl --request POST \
--url https://api.onecli.sh/v1/agents/{agentId}/channels/{provider}/complete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"botToken": "<string>",
"appToken": "<string>",
"signingSecret": "<string>",
"appId": "<string>"
}
'import requests
url = "https://api.onecli.sh/v1/agents/{agentId}/channels/{provider}/complete"
payload = {
"botToken": "<string>",
"appToken": "<string>",
"signingSecret": "<string>",
"appId": "<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({
botToken: '<string>',
appToken: '<string>',
signingSecret: '<string>',
appId: '<string>'
})
};
fetch('https://api.onecli.sh/v1/agents/{agentId}/channels/{provider}/complete', 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://api.onecli.sh/v1/agents/{agentId}/channels/{provider}/complete",
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([
'botToken' => '<string>',
'appToken' => '<string>',
'signingSecret' => '<string>',
'appId' => '<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://api.onecli.sh/v1/agents/{agentId}/channels/{provider}/complete"
payload := strings.NewReader("{\n \"botToken\": \"<string>\",\n \"appToken\": \"<string>\",\n \"signingSecret\": \"<string>\",\n \"appId\": \"<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://api.onecli.sh/v1/agents/{agentId}/channels/{provider}/complete")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"botToken\": \"<string>\",\n \"appToken\": \"<string>\",\n \"signingSecret\": \"<string>\",\n \"appId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onecli.sh/v1/agents/{agentId}/channels/{provider}/complete")
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 \"botToken\": \"<string>\",\n \"appToken\": \"<string>\",\n \"signingSecret\": \"<string>\",\n \"appId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"provider": "slack",
"status": "<string>",
"transport": "events",
"externalId": "<string>",
"identityRef": "<string>",
"identityName": "<string>",
"tenant": {
"externalId": "<string>",
"name": "<string>"
},
"managedBy": {
"name": "<string>",
"email": "<string>"
},
"groupThreads": [
{
"externalThreadId": "<string>",
"createdAt": "2023-11-07T05:31:56Z"
}
],
"spaces": [
{
"externalRef": "<string>",
"label": "<string>",
"state": "pending",
"decidedAt": "2023-11-07T05:31:56Z"
}
],
"people": [
{
"externalRef": "<string>",
"label": "<string>",
"state": "pending",
"decidedAt": "2023-11-07T05:31:56Z"
}
]
}{
"error": "<string>"
}{
"error": "<string>"
}Complete a channel attach with pasted tokens
Finishes a socket-transport attach, or an attach done entirely by hand from the manifest, by pasting the provider app’s tokens.
curl --request POST \
--url https://api.onecli.sh/v1/agents/{agentId}/channels/{provider}/complete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"botToken": "<string>",
"appToken": "<string>",
"signingSecret": "<string>",
"appId": "<string>"
}
'import requests
url = "https://api.onecli.sh/v1/agents/{agentId}/channels/{provider}/complete"
payload = {
"botToken": "<string>",
"appToken": "<string>",
"signingSecret": "<string>",
"appId": "<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({
botToken: '<string>',
appToken: '<string>',
signingSecret: '<string>',
appId: '<string>'
})
};
fetch('https://api.onecli.sh/v1/agents/{agentId}/channels/{provider}/complete', 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://api.onecli.sh/v1/agents/{agentId}/channels/{provider}/complete",
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([
'botToken' => '<string>',
'appToken' => '<string>',
'signingSecret' => '<string>',
'appId' => '<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://api.onecli.sh/v1/agents/{agentId}/channels/{provider}/complete"
payload := strings.NewReader("{\n \"botToken\": \"<string>\",\n \"appToken\": \"<string>\",\n \"signingSecret\": \"<string>\",\n \"appId\": \"<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://api.onecli.sh/v1/agents/{agentId}/channels/{provider}/complete")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"botToken\": \"<string>\",\n \"appToken\": \"<string>\",\n \"signingSecret\": \"<string>\",\n \"appId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onecli.sh/v1/agents/{agentId}/channels/{provider}/complete")
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 \"botToken\": \"<string>\",\n \"appToken\": \"<string>\",\n \"signingSecret\": \"<string>\",\n \"appId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"provider": "slack",
"status": "<string>",
"transport": "events",
"externalId": "<string>",
"identityRef": "<string>",
"identityName": "<string>",
"tenant": {
"externalId": "<string>",
"name": "<string>"
},
"managedBy": {
"name": "<string>",
"email": "<string>"
},
"groupThreads": [
{
"externalThreadId": "<string>",
"createdAt": "2023-11-07T05:31:56Z"
}
],
"spaces": [
{
"externalRef": "<string>",
"label": "<string>",
"state": "pending",
"decidedAt": "2023-11-07T05:31:56Z"
}
],
"people": [
{
"externalRef": "<string>",
"label": "<string>",
"state": "pending",
"decidedAt": "2023-11-07T05:31:56Z"
}
]
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
A workspace API key (oc_…) or organization API key (oc_org_…). Workspace-scoped endpoints called with an organization key also need X-Workspace-Id.
Path Parameters
Channel provider. Slack is the only provider today.
slack Body
Response
The completed presence
"slack"
events = Slack calls OneCLI over HTTPS (needs a public API origin); socket = OneCLI's channel adapter holds a Socket Mode connection.
events, socket The provider-side app id.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Every channel the presence is in or was asked about, with its reach state.
Show child attributes
Show child attributes
Everyone who reached the agent by direct message, with their standing.
Show child attributes
Show child attributes