Nota importante: a partir de meados de 2018, o processo para obter tokens da API do twitter se tornou muito mais burocrático. Demorei mais de uma semana para receber um conjunto de tokens de API, e isso é para um projeto de código aberto para vocês, garotas e garotas, com mais de 1,2 milhão de instalações no Packagist e 1,6 mil estrelas no Github, que teoricamente deveriam ter maior prioridade .
Se você está encarregado de trabalhar com a API do twitter para o seu trabalho, deve levar em conta esse tempo de espera potencialmente extremamente longo. Considere também outras vias de mídia social como o Facebook ou o Instagram e forneça essas opções, pois o processo para recuperar seus tokens é instantâneo.
Então você quer usar a API do Twitter v1.1?
Nota: os arquivos para estes estão no GitHub .
A versão 1.0 em breve será preterida e solicitações não autorizadas não serão permitidas. Então, aqui está um post para ajudá-lo a fazer exatamente isso, juntamente com uma classe PHP para facilitar sua vida.
1. Crie uma conta de desenvolvedor: configure uma conta de desenvolvedor no Twitter
Você precisa visitar o site oficial do desenvolvedor do Twitter e se registrar para obter uma conta de desenvolvedor. Esta é uma etapa gratuita e necessária para fazer solicitações para a API v1.1.
2. Crie um aplicativo: crie um aplicativo no site do desenvolvedor do Twitter
O que? Você pensou que poderia fazer solicitações não autenticadas? Não com a API v1.1 do Twitter. Você precisa visitar http://dev.twitter.com/apps e clicar no botão "Criar aplicativo".
Nesta página, preencha os detalhes que desejar. Para mim, isso não importava, porque eu só queria fazer um monte de solicitações de bloqueio para me livrar dos seguidores de spam. O ponto é que você terá um conjunto de chaves exclusivas para usar no seu aplicativo.
Portanto, o objetivo de criar um aplicativo é fornecer a si mesmo (e ao Twitter) um conjunto de chaves. Esses são:
- A chave do consumidor
- O segredo do consumidor
- O token de acesso
- O segredo do token de acesso
Há um pouco de informação aqui sobre para que servem esses tokens.
3. Crie tokens de acesso : você precisará deles para fazer solicitações bem-sucedidas
OAuth solicita alguns tokens. Então você precisa gerá-los para você.
Clique em "criar meu token de acesso" na parte inferior. Então, depois de rolar para o final novamente, você terá algumas chaves recém-geradas. Você precisa pegar as quatro chaves anteriormente identificadas nesta página para suas chamadas à API. Anote-as em algum lugar.
4. Altere o nível de acesso : você não deseja somente leitura, não é?
Se você quiser fazer um uso decente dessa API, precisará alterar suas configurações para Leitura e gravação se estiver fazendo algo diferente da recuperação de dados padrão usando solicitações GET .
Escolha a guia "Configurações" na parte superior da página.
Dê ao seu aplicativo acesso de leitura / gravação e clique em "Atualizar" na parte inferior.
Você pode ler mais sobre o modelo de permissão de aplicativos que o Twitter usa aqui.
5. Escreva código para acessar a API : eu fiz a maior parte por você
Combinei o código acima, com algumas modificações e alterações, em uma classe PHP, portanto é muito simples fazer as solicitações necessárias.
Isso usa o OAuth e a API do Twitter v1.1 e a classe que eu criei, que você pode encontrar abaixo.
require_once('TwitterAPIExchange.php');
/** Set access tokens here - see: https://dev.twitter.com/apps/ **/
$settings = array(
'oauth_access_token' => "YOUR_OAUTH_ACCESS_TOKEN",
'oauth_access_token_secret' => "YOUR_OAUTH_ACCESS_TOKEN_SECRET",
'consumer_key' => "YOUR_CONSUMER_KEY",
'consumer_secret' => "YOUR_CONSUMER_SECRET"
);
Certifique-se de colocar as chaves que você obteve de seu aplicativo acima nos respectivos espaços.
Em seguida, você precisa escolher um URL para o qual deseja fazer uma solicitação. O Twitter possui a documentação da API para ajudá-lo a escolher qual URL e também o tipo de solicitação (POST ou GET).
/** URL for REST request, see: https://dev.twitter.com/docs/api/1.1/ **/
$url = 'https://api.twitter.com/1.1/blocks/create.json';
$requestMethod = 'POST';
Na documentação, cada URL indica o que você pode passar para ele. Se estivermos usando o URL "blocks" como o acima, posso passar os seguintes parâmetros POST:
/** POST fields required by the URL above. See relevant docs as above **/
$postfields = array(
'screen_name' => 'usernameToBlock',
'skip_status' => '1'
);
Agora que você configurou o que deseja fazer com a API, é hora de fazer a solicitação real.
/** Perform the request and echo the response **/
$twitter = new TwitterAPIExchange($settings);
echo $twitter->buildOauth($url, $requestMethod)
->setPostfields($postfields)
->performRequest();
E para uma solicitação POST , é isso!
Para uma solicitação GET , é um pouco diferente. Aqui está um exemplo:
/** Note: Set the GET field BEFORE calling buildOauth(); **/
$url = 'https://api.twitter.com/1.1/followers/ids.json';
$getfield = '?username=J7mbo';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
Exemplo de código final : para uma solicitação GET simples de uma lista dos meus seguidores.
$url = 'https://api.twitter.com/1.1/followers/list.json';
$getfield = '?username=J7mbo&skip_status=1';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
Coloquei esses arquivos no GitHub com crédito para @ lackovic10 e @rivers! Espero que alguém ache útil; Eu sei que sim (usei para bloquear em massa em um loop).
Além disso, para aqueles no Windows que estão tendo problemas com certificados SSL, consulte esta postagem . Esta biblioteca usa cURL sob o capô, portanto, é necessário verificar se os certificados de cURL estão configurados. O Google também é seu amigo.