Enviando mensagens para conversas da demanda
Enviando mensagens para a conversa privada
Para enviar mensagens para a conversa privada de uma demanda, é necessário utilizar a mutation sendRequisitionMessage
. Esta mutation recebe os seguintes parâmetros:
Parâmetros de envio de mensagens para a conversa privada
Propriedade | Tipo | Descrição |
---|---|---|
requisitionId | String | ID da demanda que receberá a mensagem. |
content | String | Conteúdo da mensagem. |
mutation SendRequisitionMessage(
$requisitionId: ID!
$content: String!
) {
result: sendRequisitionMessage(
requisitionId: $requisitionId
content: $content
) {
id
content
createdAt
sender {
id
name
email
}
}
}
async function sendRequisitionMessage(requisitionId, content, files = []) {
const response = await fetch('https://api.linte.com/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'key': '<seu-token>'
},
body: JSON.stringify({
query: `
mutation SendRequisitionMessage(
$requisitionId: ID!
$content: String!
) {
result: sendRequisitionMessage(
requisitionId: $requisitionId
content: $content
) {
id
content
createdAt
sender {
id
name
email
}
}
}
`,
variables: {
requisitionId,
content,
}
})
});
const result = await response.json();
console.log(result);
}
// Exemplo de uso
sendRequisitionMessage(
'<id-da-demanda>',
'Nova mensagem',
['<id-do-arquivo>'] // opcional
);
import requests
def send_requisition_message(requisition_id, content, files=None):
if files is None:
files = []
response = requests.post(
'https://api.linte.com/graphql',
headers={
'Content-Type': 'application/json',
'key': '<seu-token>'
},
json={
'query': '''
mutation SendRequisitionMessage(
$requisitionId: ID!
$content: String!
) {
result: sendRequisitionMessage(
requisitionId: $requisitionId
content: $content
) {
id
content
createdAt
sender {
id
name
email
}
}
}
''',
'variables': {
'requisitionId': requisition_id,
'content': content,
}
}
)
print(response.json())
if __name__ == '__main__':
send_requisition_message(
'<id-da-demanda>',
'Nova mensagem',
['<id-do-arquivo>'] # opcional
)
Enviando mensagens com arquivos para a conversa privada
TIP
Para uma explicação detalhada sobre como fazer upload de arquivos via GraphQL, incluindo melhores práticas e tratamento de erros, consulte nosso Guia de Upload de Arquivos com GraphQL.
Para enviar mensagens com arquivos para a conversa privada de uma demanda, é necessário utilizar a mutation sendRequisitionMessageWithFiles
. Esta mutation recebe os seguintes parâmetros:
Parâmetros de envio de mensagens com arquivos para a conversa privada
Propriedade | Tipo | Descrição |
---|---|---|
requisitionId | String | ID da demanda que receberá a mensagem. |
content | String | Conteúdo da mensagem. |
files | [String] | Paths dos arquivos a serem anexados à mensagem. |
mutation($input: SendRequisitionMessageWithFilesInput!) {
result: sendRequisitionMessageWithFiles(input: $input) {
id
content
createdAt
files {
id
fileName
fileExtension
fileDownloadUrl
}
}
}
async function sendRequisitionMessageWithFiles(requisitionId, content, file) {
const formData = new FormData();
formData.append(
'operations',
JSON.stringify({
variables: {
input: {
requisitionId,
content,
files: [null]
}
},
query: `
mutation($input: SendRequisitionMessageWithFilesInput!) {
result: sendRequisitionMessageWithFiles(input: $input) {
id
content
createdAt
files {
id
fileName
fileExtension
fileDownloadUrl
}
}
}
`
})
);
const map = `["variables.input.files.0"]`;
formData.append('map', map);
formData.append('0', file);
const response = await fetch('https://api.linte.com/graphql', {
method: 'POST',
headers: {
'Apollo-Require-Preflight': 'true',
'key': '<seu-token>'
},
body: formData
});
const result = await response.json();
console.log(result);
}
// Exemplo de uso
sendRequisitionMessageWithFiles(
'<id-da-demanda>',
'Nova mensagem',
new File([''], 'arquivo.pdf', { type: 'application/pdf' })
);
import requests
import json
def send_requisition_message_with_files(requisition_id, content, file_path):
# Preparar o arquivo
files = {
'0': ('document.pdf', open(file_path, 'rb'), 'application/pdf')
}
# Preparar a operação GraphQL
operations = {
'variables': {
'input': {
'requisitionId': requisition_id,
'content': content,
'files': [None]
}
},
'query': '''
mutation ($input: SendRequisitionMessageWithFilesInput!) {
result: sendRequisitionMessageWithFiles(input: $input) {
id
content
createdAt
files {
id
fileName
fileExtension
fileDownloadUrl
}
}
}
'''
}
# Preparar o mapeamento
map = {
'0': ['variables.input.files.0']
}
# Enviar a requisição
response = requests.post(
'https://api.linte.com/graphql',
headers={
'Apollo-Require-Preflight': 'true',
'key': '<seu-token>'
},
data={
'operations': json.dumps(operations),
'map': json.dumps(map)
},
files=files
)
print(response.json())
if __name__ == '__main__':
send_requisition_message_with_files(
'<id-da-demanda>',
'Nova mensagem',
'caminho/para/seu/arquivo.pdf'
)
Enviando mensagens para conversas públicas ou chats privados
Para enviar mensagens para uma conversa pública ou chat privado de uma demanda, é necessário utilizar a mutation sendRequisitionChatGroupMessage
. Esta mutation recebe os seguintes parâmetros:
Parâmetros de envio de mensagens para conversas públicas ou chats privados
Propriedade | Tipo | Descrição |
---|---|---|
requisitionId | String | ID da demanda que contém a conversa. |
requisitionChatGroupId | String | ID da conversa que receberá a mensagem. |
messageText | String | Conteúdo da mensagem. |
mutation SendRequisitionChatGroupMessage(
$requisitionId: ID!
$requisitionChatGroupId: ID!
$messageText: String!
) {
result: sendRequisitionChatGroupMessage(
requisitionId: $requisitionId
requisitionChatGroupId: $requisitionChatGroupId
messageText: $messageText
) {
id
content
createdAt
sender {
id
name
email
}
files {
id
fileName
fileExtension
fileDownloadUrl
}
}
}
async function sendRequisitionChatGroupMessage(
requisitionId,
requisitionChatGroupId,
content,
files = []
) {
const response = await fetch('https://api.linte.com/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'key': '<seu-token>'
},
body: JSON.stringify({
query: `
mutation SendRequisitionChatGroupMessage($requisitionId: ID!, $messageText: String!, $requisitionChatGroupId: ID!) {
result: sendRequisitionChatGroupMessage(
requisitionId: $requisitionId, messageText: $messageText, requisitionChatGroupId: $requisitionChatGroupId
) {
id
content
createdAt
sender {
id
name
email
}
files {
id
fileName
fileExtension
fileDownloadUrl
}
}
}
`,
variables: {
requisitionId,
requisitionChatGroupId,
messageText: content,
}
})
});
const result = await response.json();
console.log(result);
}
// Exemplo de uso
sendRequisitionChatGroupMessage(
'<id-da-demanda>',
'<id-do-chat>',
'Nova mensagem',
['<id-do-arquivo>'] // opcional
);
import requests
def send_requisition_chat_group_message(
requisition_id,
requisition_chat_group_id,
content,
files=None
):
if files is None:
files = []
response = requests.post(
'https://api.linte.com/graphql',
headers={
'Content-Type': 'application/json',
'key': '<seu-token>'
},
json={
'query': '''
mutation SendRequisitionChatGroupMessage(
$requisitionId: ID!
$requisitionChatGroupId: ID!
$messageText: String!
) {
result: sendRequisitionChatGroupMessage(
requisitionId: $requisitionId
requisitionChatGroupId: $requisitionChatGroupId
messageText: $messageText
) {
id
content
createdAt
sender {
id
name
email
}
files {
id
fileName
fileExtension
fileDownloadUrl
}
}
}
''',
'variables': {
'requisitionId': requisition_id,
'requisitionChatGroupId': requisition_chat_group_id,
'content': content,
'files': files
}
}
)
print(response.json())
if __name__ == '__main__':
send_requisition_chat_group_message(
'<id-da-demanda>',
'<id-do-chat>',
'Nova mensagem',
['<id-do-arquivo>'] # opcional
)
Enviando mensagens com arquivos para conversas públicas ou chats privados
TIP
Para uma explicação detalhada sobre como fazer upload de arquivos via GraphQL, incluindo melhores práticas e tratamento de erros, consulte nosso Guia de Upload de Arquivos com GraphQL.
Para enviar mensagens com arquivos para uma conversa pública ou chat privado de uma demanda, é necessário utilizar a mutation sendRequisitionChatGroupMessageWithFiles
. Esta mutation recebe os seguintes parâmetros:
Parâmetros de envio de mensagens com arquivos para conversas públicas ou chats privados
Propriedade | Tipo | Descrição |
---|---|---|
requisitionId | String | ID da demanda que contém a conversa. |
requisitionChatGroupId | String | ID da conversa que receberá a mensagem. |
messageText | String | Conteúdo da mensagem. |
files | [String] | Lista de IDs dos arquivos anexados à mensagem. |
mutation ($input: SendRequisitionChatGroupMessageWithFilesInput!) {
result: sendRequisitionChatGroupMessageWithFiles(input: $input) {
id
content
createdAt
files {
id
fileName
fileExtension
fileDownloadUrl
}
}
}
async function sendRequisitionChatGroupMessageWithFiles(
requisitionId,
requisitionChatGroupId,
content,
file
) {
const formData = new FormData();
formData.append(
'operations',
JSON.stringify({
variables: {
input: {
requisitionId,
requisitionChatGroupId,
messageText: content,
files: [null]
}
},
query: `
mutation ($input: SendRequisitionChatGroupMessageWithFilesInput!) {
result: sendRequisitionChatGroupMessageWithFiles(input: $input) {
id
content
createdAt
files {
id
fileName
fileExtension
fileDownloadUrl
}
}
}
`
})
);
const map = `["variables.input.files.0"]`;
formData.append('map', map);
formData.append('0', file);
const response = await fetch('https://api.linte.com/graphql', {
method: 'POST',
headers: {
'Apollo-Require-Preflight': 'true',
'key': '<seu-token>'
},
body: formData
});
const result = await response.json();
console.log(result);
}
// Exemplo de uso
sendRequisitionChatGroupMessageWithFiles(
'<id-da-demanda>',
'<id-do-chat>',
'Nova mensagem',
new File([''], 'arquivo.pdf', { type: 'application/pdf' })
);
import requests
import json
def send_requisition_chat_group_message_with_files(
requisition_id,
requisition_chat_group_id,
content,
file_path
):
# Preparar o arquivo
files = {
'0': ('document.pdf', open(file_path, 'rb'), 'application/pdf')
}
# Preparar a operação GraphQL
operations = {
'variables': {
'input': {
'requisitionId': requisition_id,
'requisitionChatGroupId': requisition_chat_group_id,
'messageText': content,
'files': [None]
}
},
'query': '''
mutation ($input: SendRequisitionChatGroupMessageWithFilesInput!) {
result: sendRequisitionChatGroupMessageWithFiles(input: $input) {
id
content
createdAt
files {
id
fileName
fileExtension
fileDownloadUrl
}
}
}
'''
}
# Preparar o mapeamento
map = {
'0': ['variables.input.files.0']
}
# Enviar a requisição
response = requests.post(
'https://api.linte.com/graphql',
headers={
'Apollo-Require-Preflight': 'true',
'key': '<seu-token>'
},
data={
'operations': json.dumps(operations),
'map': json.dumps(map)
},
files=files
)
print(response.json())
if __name__ == '__main__':
send_requisition_chat_group_message_with_files(
'<id-da-demanda>',
'<id-do-chat>',
'Nova mensagem',
'caminho/para/seu/arquivo.pdf'
)