Threads API - o primeiro cliente não oficial da API do Threads
(github.com/junhoyeo)Contexto
- Ontem de manhã, a Meta (Instagram) lançou o Threads, app apresentado como rival do Twitter, e em apenas 7 horas após o lançamento chegou a 10 milhões de usuários
- Pensei que não dava para apenas assistir ao hype do Threads de fora, então comecei a pensar em como aproveitar essa oportunidade
- Decidi criar um cliente em TypeScript/Node.js usando uma API privada
- Há 3 anos, quando o Clubhouse foi lançado sem web app, eu já tinha analisado as requisições da API com SSL Proxy e criado um serviço web (junhoyeo/clubhouse-profile). As pessoas ao redor acharam interessante, mas não gerou um impacto maior do que isso
- Mas desta vez senti que, pelo momento, valia a pena tentar de novo:
- No ano passado, com o surgimento do ChatGPT, desenvolvedores criaram clientes/serviços não oficiais, e todo o ecossistema foi evoluindo junto
- Ainda hoje, basta olhar o feed do GitHub para encontrar facilmente novos repositórios sobre SDKs do ChatGPT/OpenAI ou clientes customizados
- Se eu tentasse novamente agora, parecia que dava para fazer algo muito mais divertido
Direção futura
- O Threads está se preparando para integração compatível com o ecossistema fediverso promovido pelo Mastodon
- A monetização de APIs por redes sociais, como o Twitter de Elon Musk e o Reddit (que correu para seguir a tendência), virou mais uma tendência
- Parece ser apenas uma questão de tempo até a Meta abrir a API do Threads para terceiros
- O caso do ChatGPT
- Travis Fischer foi uma das primeiras pessoas a criar um cliente do ChatGPT
- Ele mantém, entre outros, o repositório transitive-bullshit/chatgpt-api, com mais de 14k stars
- Depois que a OpenAI lançou a API do GPT4 com acesso para a maioria dos usuários, ele reposicionou rapidamente o projeto: de cliente não oficial para cliente integrado à API oficial
- Travis Fischer foi uma das primeiras pessoas a criar um cliente do ChatGPT
- Pensei que, quando a Meta se mover, se eu adicionar rapidamente integração oficial, posso ocupar antes esse espaço de biblioteca SDK
Andamento
- Às 21h, em 30 minutos, comecei o repositório
threads-apiao implementar e publicar uma função básica que obtém, a partir do nome de usuário (username), o User ID usado internamente pelo Threads e, com isso, faz consultas GraphQL para buscar o perfil do usuário e os threads publicados - Talvez por causa das palavras-chave, novos desenvolvedores chegaram imediatamente e abriram issues perguntando que tipo de repositório era aquele
- Continuei desenvolvendo em Working in Public
- No mesmo dia, fiz um demo Reader com Next.js e Tailwind
Resultados
- Em apenas um dia, registrou mais de 200 stars e mais de 6.000 pageviews
- Desenvolvedores de várias nacionalidades contribuíram e compartilharam ideias no Threads e no Twitter
- Pessoas inspiradas por isso criaram clientes em Rust, Go, Java e Python
- Também recebi propostas de patrocínio por meio das issues do GitHub
Daqui para frente
- Integração de autenticação
- Criar componentes de UI empolgantes
- Lançar um cliente customizado mantido pela comunidade open source
10 comentários
T_T A Meta exige que você pare com essas atividades imediatamente.
Felizmente, consegui resolver tudo numa boa com o advogado do escritório que entrou em contato. Vendo agora, parece que foi só um episódio engraçado. kkk
Parabéns por entrar nos trending do GitHub, parabéns
Só vi agora. Obrigado! Acho que foi a primeira vez que isso entrou nos trends, e pelo visto, basta subir uma vez que os bots começam a espalhar por todo lado, tremendo.
Muito legal.
Eu também vi o Threads e pensei que alguém acabaria criando uma API de novo,
mas você realmente colocou isso em prática com uma rapidez impressionante!
Torço para que tudo corra bem e que isso acabe sendo incorporado à biblioteca oficial.
Obrigado! Acho que foi uma jogada genial implementar o
write, mas sem divulgar, e lançar primeiro só oreadpara sair na frente haha.A biblioteca oficial já era, mas vou continuar fazendo muitos projetos interessantes daqui para frente!
Uau
Obrigadinho!
Incrível!
Obrigado!!