Estou tentando colocar a mídia recente do Instagram de um usuário em uma barra lateral. Estou tentando usar a API do Instagram para buscar a mídia.
http://instagram.com/developer/endpoints/users/
A documentação diz para GET https://api.instagram.com/v1/users/<user-id>/media/recent/
, mas diz para passar um token de acesso OAuth. Um token de acesso representa a autorização para agir em nome de um usuário. Eu não quero que os usuários façam login no Instagram para ver isso na barra lateral. Eles nem precisam ter uma conta no Instagram.
Por exemplo, eu posso ir para http://instagram.com/thebrainscoop sem estar conectado ao Instagram e ver fotos. Eu quero fazer isso através da API.
Na API do Instagram, solicitações não autenticadas pelo usuário passam um em client_id
vez de um access_token
. Se eu tentar isso, porém, recebo:
{
"meta":{
"error_type":"OAuthParameterException",
"code":400,
"error_message":"\"access_token\" URL parameter missing. This OAuth request requires an \"access_token\" URL parameter."
}
}
Então, isso não é possível? Não há como buscar a mídia (pública) mais recente de um usuário sem solicitar que ele faça login em uma conta do Instagram através do OAuth primeiro?
fonte
Respostas:
É tarde, mas vale a pena se ajudar alguém, pois eu não o vi na documentação do Instagram.
Para executar o GET on
https://api.instagram.com/v1/users/<user-id>/media/recent/
(no momento da gravação), você realmente não precisa do token de acesso OAuth.Você pode executar
https://api.instagram.com/v1/users/[USER ID]/media/recent/?client_id=[CLIENT ID]
[ID DO CLIENTE] seria um ID de cliente válido registrado no aplicativo por meio de clientes de gerenciamento (não relacionados ao usuário). Você pode obter [USER ID] do nome de usuário executando a solicitação de pesquisa de usuários GET:
https://api.instagram.com/v1/users/search?q=[USERNAME]&client_id=[CLIENT ID]
fonte
Você pode fazer o download de qualquer feed de fotos do usuário do Instagram no formato JSON usando o
?__a=1
endereço da página de destino como este . Não há necessidade de obter o ID do usuário ou registrar um aplicativo, sem tokens, sem oAuth.min_id
emax_id
variáveis podem ser usadas para paginação, aqui está um exemploYQL
pode não funcionar aqui dentro do iframe cortado, então você sempre pode verificá-lo manualmente em YQL ConsoleATUALIZAÇÃO DE ABRIL DE 2018: Após as atualizações mais recentes do instagram, você não pode fazer isso no lado do cliente (javascript), porque os cabeçalhos personalizados da solicitação assinada não podem ser definidos com javascript devido a
CORS
Access-Control-Allow-Headers
restrições. É ainda possível fazer isso viaphp
ou qualquer outro método do lado do servidor com a assinatura apropriada com base emrhx_gis
,csrf_token
e parâmetros de solicitação. Você pode ler mais sobre isso aqui .ATUALIZAÇÃO DE JANEIRO DE 2019: YQL desativado, portanto, verifique minha atualização mais recente com o Google Image Proxy como
CORS
proxy para a página do Instagram! Somente momento negativo - paginação não disponível com este método.PHP
solução:fonte
11.11.2017
Como o Instagram mudou a maneira como eles fornecem esses dados, nenhum dos métodos acima funciona atualmente. Aqui está a nova maneira de obter a mídia do usuário:
GET
https://instagram.com/graphql/query/?query_id=17888483320059182&variables={"id":"1951415043","first":20,"after":null}
Onde:
query_id
- valor permanente: 17888483320059182 (observe que pode ser alterada no futuro).id
- ID do usuário. Pode vir com uma lista de usuários. Para obter a lista de usuários, você pode usar a seguinte solicitação:GET https://www.instagram.com/web/search/topsearch/?context=blended&query=YOUR_QUERY
first
- quantidade de itens a serem obtidos.after
- ID do último item, se você deseja obter itens desse ID.fonte
query_id
é um valor permanente. Isso significa que é sempre 17888483320059182 (pelo menos, a menos que o Instagram mude). ID do usuário - é ID de usuário (editado minha resposta um pouco)Consegui obter a mídia mais recente de um usuário usando a seguinte API sem autenticação (incluindo a descrição, curtidas, contagem de comentários).
https://www.instagram.com/apple/?__a=1
Por exemplo
fonte
Na semana passada, o Instagram desativou os
/media/
URLs, implementei uma solução alternativa, que funciona muito bem por enquanto.Para resolver os problemas de todos neste segmento, escrevi o seguinte: https://github.com/whizzzkid/instagram-reverse-proxy
Ele fornece todos os dados públicos do instagram usando os seguintes pontos de extremidade:
Obter mídia do usuário:
Obter mídia do usuário com contagem limite:
Use JSONP:
A API do proxy também anexa os URLs da página seguinte e da página anterior à resposta, para que você não precise calcular isso ao final.
Espero que vocês gostem!
Obrigado a @ 350D por detectar isso :)
fonte
A API do Instagram requer autenticação do usuário por meio do OAuth para acessar o terminal de mídia recente de um usuário. No momento, não parece haver outra maneira de obter todas as mídias para um usuário.
fonte
Se você estiver procurando uma maneira de gerar um token de acesso para uso em uma única conta, tente isso -> https://coderwall.com/p/cfgneq .
Eu precisava de uma maneira de usar a API do Instagram para pegar todas as mídias mais recentes de uma conta específica.
fonte
Aqui está uma solução de trilhos. É uma espécie de porta dos fundos, que na verdade é a porta da frente.
O objeto que você recebe varia dependendo de se tratar de uma pesquisa por usuário ou por tag. Eu recebo os dados assim:
Em seguida, recebo outra página de resultados construindo um URL da seguinte maneira:
fonte
Graças ao esquema de API em constante mudança (e de design horrível) do Instagram, a maioria dos itens acima não funcionará mais a partir de abril de 2018.
Aqui está o caminho mais recente para acessar dados de postagem individuais, se você estiver consultando a API diretamente usando o método
https://www.instagram.com/username/?__a=1
métodoSupondo que seus
JSON
dados retornados sejam$data
possíveis, você pode percorrer cada resultado usando os seguintes exemplos de caminho:As principais coisas nessa mudança recente foram
graphql
eedge_owner_to_timeline_media
.Parece que eles vão matar esse acesso à API para clientes não 'comerciais' em DEZ 2018, para aproveitar ao máximo enquanto você pode.
Espero que ajude alguém;)
fonte
JSFiddle
Javascript:
HTML:
CSS:
fonte
Só quero adicionar uma resposta à @ 350D, pois era difícil para mim entender.
Minha lógica no código é a seguinte:
Ao chamar a API pela primeira vez, estou ligando apenas
https://www.instagram.com/_vull_ /media/
. Quando recebo resposta, verifico o valor booleano demore_available
. Se for verdade, recebo a última foto da matriz, identifico e chamo Instagram API novamente, mas desta vezhttps://www.instagram.com/_vull_/media/?max_id=1400286183132701451_1642962433
.É importante saber aqui, esse ID é o ID da última imagem na matriz. Portanto, ao solicitar maxId com o último ID da imagem na matriz, você terá as próximas 20 fotos e assim por diante.
Espero que isso esclareça as coisas.
fonte
Se você ignorar Oauth, provavelmente não saberá qual usuário do instagram é. Dito isto, existem algumas maneiras de obter imagens do instagram sem autenticação.
A API do Instagram permite visualizar as imagens mais populares de um usuário sem autenticação. Usando o seguinte terminal: Aqui está o link
Instagram fornece feeds RSS para as tags no presente .
As páginas de usuário do Instagram são públicas, então você pode usar o PHP com CURL para obter a página e um analisador DOM para pesquisar no html as tags de imagem que deseja.
fonte
Mais um truque, pesquise fotos por hashtags:
Onde:
query_hash
- valor permanente (acredito que seu hash de 17888483320059182 pode ser alterado no futuro)tag_name
- o titulo fala por sifirst
- quantidade de itens a serem obtidos (não sei por que, mas esse valor não funciona conforme o esperado. O número real de fotos retornadas é um pouco maior que o valor multiplicado por 4,5 (cerca de 110 para o valor 25 e cerca de 460 para o valor 100))after
- ID do último item, se você deseja obter itens desse ID. O valor daend_cursor
resposta JSON pode ser usado aqui.fonte
Bem, como já
/?__a=1
parou de funcionar, é melhor usar o curl e analisar a página do instagram, conforme escrito nesta resposta: Gere a API do Instagram do token de acesso, sem precisar fazer login?fonte
Se você deseja pesquisar usuários sem ter ID do cliente e token de acesso:
1: se você deseja pesquisar todos os usuários com nomes semelhantes à sua palavra de pesquisa:
substitua SeachName pelo texto que você deseja pesquisar:
https://www.instagram.com/web/search/topsearch/?query=SearchName
2: se você deseja pesquisar exatamente o mesmo nome de usuário:
substitua UserName pelo nome de pesquisa desejado:
fonte
Você pode usar este API para recuperar informações públicas do usuário instagram:
https://api.lityapp.com/instagrams/thebrainscoop?limit=2
Se você não definir o parâmetro de limite, as mensagens são limitadas a 12 por padrão
Este A API foi criada no SpringBoot com HtmlUnit, como você pode ver no código:
É um exemplo de resposta:
fonte
Eu realmente precisava dessa função, mas para o Wordpress. Eu me encaixo e funcionou perfeitamente
fonte
O código nodejs abaixo raspa imagens populares de uma página do Instagram. A função 'ScrapeInstagramPage' cuida do efeito pós-envelhecimento.
Tente aqui
Exemplo: para determinado URL ' https://www.instagram.com/dress_blouse_designer/ ', pode-se chamar função
fonte
Isso funciona usando uma chamada ajax simples e caminhos de imagem iterativos.
fonte
Aqui está um script php que baixa as imagens e cria um arquivo html com links nas imagens. Crédito 350D para a versão php, isso é apenas elaborado .. Eu sugeriria que este seja um trabalho cron e disparasse quantas vezes você precisar. Confirmado a trabalhar em maio de 2019 .
fonte