> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/contributor/contributor-pt/servico-social/get-friends.md).

# Obter Amigos

Detalhes sobre o uso da Social Service API para recuperar amizades, solicitações e amigos em comum na plataforma Decentraland. A API permite que desenvolvedores interajam com o Social Service para obter informações relacionadas a amizades.

#### REST API

Para recuperar amizades, o Social Service expõe um [REST API](https://social-service-api-specs.pages.dev/):

* `GET /friendships/me` - Recuperar as amizades do usuário atual. Requer o token de acesso no cabeçalho Authorization.
* `GET /friendships/{other-address}/mutuals` - Recuperar amigos em comum com outro usuário. Requer o token de acesso no cabeçalho Authorization.

#### WebSocket RPC Server

A Social Service WebSocket API fornece dois tipos de mensagens para recuperar amizades e amigos em comum. Primeiro você precisa estabelecer uma conexão WebSocket e então usar esses métodos para transmitir informações relacionadas ao usuário.

* `GetFriends` - Recuperar os amigos de um usuário. Retorna um stream de respostas de usuários.
* `GetMutualFriends` - Recuperar amigos em comum com outro usuário. Retorna um stream de respostas de usuários.

Consulte o [arquivo friendships.proto](https://github.com/decentraland/protocol/blob/main/proto/decentraland/social/friendships/friendships.proto#L7) para mais detalhes sobre esses tipos de mensagem.

### Exemplos de Código em JavaScript

Para interagir com a Social Service WebSocket API usando JavaScript, você pode usar o cliente RPC fornecido conforme explicado anteriormente. Mas se precisar implementá-lo você mesmo, abaixo há exemplos de código demonstrando como recuperar amigos e amigos em comum:

#### Obtendo Todos os Amigos

```javascript
import { createRpcClient, createWebSocketsTransport } from '@dcl/rpc/dist/client';
import { FriendshipsServiceDefinition } from './protobuff-types/decentraland/social/friendships/friendships.gen';

const socialClientRpcUrl = 'wss://social.decentraland.org'; // Substitua pela URL real
const webSocketsTransport = createWebSocketsTransport(socialClientRpcUrl);
const service = loadService(FriendshipsServiceDefinition, webSocketsTransport);

const response = service.getFriends(Payload.create({ synapseToken }));
for await (const friends of response) {
  processErrors(friends);
  const userList = friends.users?.users ?? [];
  // Processar a lista de amigos
}
```

#### Obtendo Amigos em Comum

```javascript
const response = service.getMutualFriends(
  MutualFriendsPayload.create({
    user: { address }, 
    authToken: { synapseToken }
  })
);
for await (const mutualFriend of response) {
  processErrors(mutualFriend);
  const mutualFriendList = mutualFriend.users?.users ?? [];
  // Processar a lista de amigos em comum
}
```

Para mais exemplos de código e detalhes, visite o [repositório social-rpc-client-js no GitHub](https://github.com/decentraland/social-rpc-client-js)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.decentraland.org/contributor/contributor-pt/servico-social/get-friends.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
