Power BI - Conectando a uma API OAuth Paginada

  Рет қаралды 26,102

devAnalytics

devAnalytics

Күн бұрын

Пікірлер: 118
@claudioroberto8129
@claudioroberto8129 Жыл бұрын
Estou com o mesmo problema no caso da paginação. Acredito que com esse vídeo vou resolver meu problema.
@DevAnalytics
@DevAnalytics Жыл бұрын
Fala Claudio, tudo certo? Este vídeo kzbin.info/www/bejne/qGevg6mir9dpfcU fala sobre paginação de uma forma bem completa! Espero que lhe ajude!
@gabrielaguiar-ilhaservice609
@gabrielaguiar-ilhaservice609 3 жыл бұрын
Ajudou muito!
@LucianoDantas13
@LucianoDantas13 Жыл бұрын
Otimo video, me salvou aqui. a API que eu uso tem que gerar um token para o Authorization mas vi no seu outro video e funcionou muito bem.\ e a diferença que na minha API nao usa Limit e sim a partir de um registro mas já que faz 5000 em 5000 fiz 0 - 5000 - 10000 na pagination. Muito bom o video Parabens.
@DevAnalytics
@DevAnalytics Жыл бұрын
Muito obrigado, Luciano! É uma grande satisfação saber que o conteúdo que disponibilizo lhe foi útil 👍🏻👍🏻👍🏻 Um forte abraço!
@eltonmelo9728
@eltonmelo9728 Жыл бұрын
Excelente vídeo, Obrigado pela ajuda.
@DevAnalytics
@DevAnalytics Жыл бұрын
Eu que agradeço, Elton!
@edirlopeslima7556
@edirlopeslima7556 2 жыл бұрын
Boa noite Raphael, poderia me ajudar com uma questão? estou fazendo uma integração com o bling, porem, na API do Bling usa paginação, so que não tem as informçaoes de totais de registros para fazer os calculos e saber a quantidade de paginas que deverá percorrer, tem alguma ideia para resolver esse problema?
@DevAnalytics
@DevAnalytics 2 жыл бұрын
Fala Edir, tudo certo? Quando não temos os dados sobre a quantidade de registros disponíveis na API, o jeito é monitorar a quantidade de registros vinda em cada requisição. Ex: a API retorna no máximo 100 registros, por isso, se ela tiver 132 registros, você terá 2 páginas, certo? O pulo do gato, é sempre que você faz uma requisição, pegue a quantidade de registros dela (podes usar funções M como List.Count) e verifique os valores. No teu lopping, você deverá colocar uma condicional, onde o looping irá terminar, assim que a quantidade de registros for igual a zero. Desta forma você poderá paginar a API do Bling corrretamente ;) Abs!
@nicollasfronio5067
@nicollasfronio5067 Жыл бұрын
e para tokens que mudam a cada requisição? isso funciona?
@DevAnalytics
@DevAnalytics Жыл бұрын
Sim Nicolas, pois a cada chamada ele irá pegar um novo token ;)
@danielcecilio
@danielcecilio 6 ай бұрын
Otima tarde Raphael... cara consegue me ajudar com relação a Chamada Call e RelativePath do banco do Omie... vou precisar criar mais de uma tabela e sao Call e RelativePath diferentes.. to quebrando a cabeça mais nao consigo faze isso
@DevAnalytics
@DevAnalytics 3 ай бұрын
Fala Daniel, tudo certo? Cara, existem algumas formas de deixar as consultas mais dinâmicas, mas não seria possível explicá-las por aqui. Em breve estarei trazendo novidades sobre este tema ;)
@HilgnerSmart
@HilgnerSmart 3 ай бұрын
Para fazer isso com a Hotmart, estou tendo muitas dificuldades.
@DevAnalytics
@DevAnalytics 3 ай бұрын
Sim, é possível criar automações para a Hotmart também ;)
@orafaelgf
@orafaelgf 2 жыл бұрын
Olá, não achei o vídeo que vc citou no qual vc pega o token, encapsula e depois solicita os dados. Pode colocar o link aqui por favor?
@memelribeiro
@memelribeiro 3 жыл бұрын
Que video salvador da patria!!!!
@ChoraAPI
@ChoraAPI 3 жыл бұрын
Sensacional Rapha!!! Muito obrigado por compartilhar o que você conhece de consultas de API no Power BI. Sobre a parte da paginação, a OMIE já oferece o total de páginas na consulta, fiz uma consulta dentro da tabela de páginas para pegar o total de páginas e assim fazer o filtro das linhas antes de invocar a função.
@ChoraAPI
@ChoraAPI 3 жыл бұрын
@Caio Pardo Na própria consulta da API tem o número de páginas, no final.
@paulorobertocardosonogueir172
@paulorobertocardosonogueir172 3 жыл бұрын
@Caio Pardo espero que te ajude total_de_paginas = Fonte[total_de_paginas], #"Converted to Table" = Table.FromList({1..total_de_paginas}, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
@langame01
@langame01 4 жыл бұрын
Cara parabéns estou iniciando no Power Bi...Mas você ajuda muito... Salvou .....
@digitalmente5301
@digitalmente5301 3 жыл бұрын
muito bom!
@murilomartinsdealmeida4727
@murilomartinsdealmeida4727 3 жыл бұрын
Ótimo video, didatica muito boa. me ajudou muito em um projeto que estou trabalhando aqui em meu serviço.
@DevAnalytics
@DevAnalytics 3 жыл бұрын
Muito obrigado, Murilo. Grande satisfação em saber que o conteúdo do canal lhe foi útil :)
@pauloricardobnu
@pauloricardobnu Жыл бұрын
Muito bom o vídeo. Api que estou utilizando possui Autenticação básica. Ela faz a integração com sucesso, apresenta o arquivo json. Porém ao clicar no arquivo json que voltou da integração ele pede uma autenticação. Mas já faço essa autenticação no fonte... Sabe me dizer se tem alguma outra configuração? let body = " { ""nomeMacroFuncao"" :""xpto"", ""parametros"": [""1""] }", request = Web.Contents( PATH, [ Headers=[ #"Content-type"="Application/json", Authorization = "Basic " & Binary.ToText(Text.ToBinary("usuario" & ":" & "senha"), BinaryEncoding.Base64) ], Content=Text.ToBinary(body) ] ) in request
@pauloricardobnu
@pauloricardobnu Жыл бұрын
Dentro das Configurações da fonte de dados, eu já coloquei o caminho como "Anônimo" e nível e privacidade Publico.
@DevAnalytics
@DevAnalytics Жыл бұрын
Fala Paulo, tudo certo? Sua API é de autenticação básica, e o padrão é concatenar o valore de usuário e senha, separados por : Você até fez isso, o problema é que estes valores precisam ser encodificados em formato base64. Você pode implementar este tipo de encodificação pelo M mesmo, aí é só pesquisar por base64 power query no Google. Ou você pode simplesmente fazer isso em algum site de conversão e usar o código em base64 direto no body da requisição. Desta forma, a tela de login não irá mais aparecer ;)
@paulorobertocardosonogueir172
@paulorobertocardosonogueir172 5 жыл бұрын
Grande Raphael, boa tarde. Sou o Paulo solicitante da ajuda (mencionado no decorrer do vídeo). Gostaria de agradecer imensamente a sua colaboração e dedicação com este caso. Mais uma vez explicado com maestria, assim como seus demais vídeos, levando conhecimento e abrindo o leque de opções que esta brilhante ferramenta nos dispõe. Só tenho que agradecer de coração e dizer que pessoas como você faz a diferença no mundo do conhecimento :) Quanto ao meu desafio 27:15 (rsss) a API realmente disponibiliza a quantidade total de registros da fonte 4:56 (contida no corpo do request) conforme sugere no vídeo , abaixo os parâmetros de retorno e com isso conseguimos saber previamente a quantidade de páginas necessárias para a construção da tabela ;) "pagina": 1, "total_de_paginas": 71, "registros": 50, "total_de_registros": 3534 Mais uma vez agradeço muito a disposição em responder prontamente e desejar todo o sucesso do mundo na sua caminhada. Forte abraço e que Deus te abençoe sempre.
@DevAnalytics
@DevAnalytics 5 жыл бұрын
Paulo, eu que te agradeço pela confiança que depositaste no conteúdo que venho desenvolvendo. Saber que o teu problema foi resolvido, me traz uma enorme satisfação. Obrigado mais uma vez e sucesso sempre!
@MadsonBraz
@MadsonBraz 3 жыл бұрын
Paulo, Vc conseguiu fazer a conexão usando a URL correta do endpoint? Tendo em vista que essa usada no video é a url da página de teste da API.
@cleydsonhonorio7857
@cleydsonhonorio7857 3 жыл бұрын
Paulo e Rafael, Vcs dois são iluminados! kkk Vou contar o que aconteceu comigo... Eu assisti este vídeo há 1 ano atrás quando eu estava aprendendo a entrar com api´s no Power Bi. Mas na época não deu certo com a api em questão que eu estava trabalhando. Hoje, após um ano, precisei de buscar as api´s do programa Omie (igual ao que o Paulo solicitou) e foi uma grande surpresa para mim. É exatamente o que eu estava quebrando a cabeça aqui para desenvolver para a empresa onde trabalho! Obrigado a vcs dois!
@paulorobertocardosonogueir172
@paulorobertocardosonogueir172 3 жыл бұрын
@@MadsonBraz Consegui sim. Você tem razão, esse endpoint é de uma api de testes. Mas eu consegui fazer a chamada apontando para a api de produção da omie. Porém aconteceu um problema recentemente, a omie entrou em contato informando que irão desabilitar dia 24/05 as requisições feitas através do método get, somente poderão ser feitas requisições com método POST. Infelizmente ainda não consegui alterar o meu código para contemplar essa mudança e o prazo está se encerrando. Se você quiser posso te mandar a URL que tenho o apontamento para produção porém no método get. Segue um exemplo para conexão: app.omie.com.br/api/v1/servicos/os/?JSON={%22call%22:%22ListarOS%22,%22app_key%22:%2238333295000%22,%22app_secret%22:%224cea520a0e2a2ecdc267b75d3424a0ed%22,%22param%22:[{%22pagina%22:1,%22registros_por_pagina%22:50,%22apenas_importado_api%22:%22N%22}]} Utilize as suas credencias para fazer o teste, as que estão contidas na URL já está com o método get bloqueado. Boa sorte por ai
@paulorobertocardosonogueir172
@paulorobertocardosonogueir172 3 жыл бұрын
@@cleydsonhonorio7857 você recebeu a notificação da omie de que não poderemos mais utilizar métodos get na requisição das APIs?
@mogcps
@mogcps 3 жыл бұрын
Olha, muito bom, me ajudou demais. Uso OMIE também. Parabéns!
@DevAnalytics
@DevAnalytics 3 жыл бұрын
Muito obrigado Marcelo! Falando em conexão com a API Omie, tem vídeo novo no canal falando sobre 😉
@IvensPontes
@IvensPontes 2 жыл бұрын
No response tava vindo total de páginas e total de registros
@DevAnalytics
@DevAnalytics 2 жыл бұрын
Exatamente, Ivens! Nos vídeos mais recentes do canal temos fluxos mais completos ;) Obrigado pelo comentário! Abs
@RodrigoZenga
@RodrigoZenga 3 жыл бұрын
Excelente, preciso fazer isso no ADF despejando em um DW
@sergiodeoliveira5400
@sergiodeoliveira5400 3 жыл бұрын
Cara, sensacional o conteúdo!!! Obrigado ajudou demais. Esse assunto de API não tem pra ninguém, vc é o cara. Deixar uma sugestão de video aqui, filtro dentro da consulta nula. Ex: quero trazer apenas as recebimentos com a data > que ano de 2020. Detalhe a API tras o data em format String. Vlwww abssss
@DevAnalytics
@DevAnalytics 3 жыл бұрын
Gratidão demais, Sergio! Anotada a dica!!! Abs!
@paulopaiva3133
@paulopaiva3133 2 жыл бұрын
tenho que ler uma api do arquivei, como posso fazer?
@DevAnalytics
@DevAnalytics 2 жыл бұрын
Fala Paulo, tudo certo? Então, não tem como eu te responder exatamente aqui o que deves fazer para poder ler estes dados, mas... sugiro primeiramente ler a documentação da API que esta em developers.arquivei.com.br/ Lá, podes perceber que eles pedem em cada tipo de requisição, uma quantidade de parâmetros para a consulta (ex: access_key, limit, cursor). Estes parâmetros são os mais importantes, mas existem endpoints que pedem mais coisas, por isso fique atento. Podes ler atentamente a documentação, identificar os parâmetros que precisas para o endpoint que queres pegar, e a partir daí, podes ver os vídeos que temos aqui no canal, para que seja possível montares a conexão ;) Acredito que assim, consegues ter resultado! Boa sorte ;)
@felipehenrique798
@felipehenrique798 3 жыл бұрын
Ola Raphael sobre o limite de paginação se colocarmos o excedente de paginas na tabela ele dará um erro. É possivel colocar uma condicional na função caso de erro não processar?
@rafaelslash2008
@rafaelslash2008 3 жыл бұрын
Estou exatamente com esse problema, tentando uma forma de fazer ficar dinâmico.
@paulorobertocardosonogueir172
@paulorobertocardosonogueir172 3 жыл бұрын
Tem como limitar sim Felipe. Armazene a quantidade total de páginas do response em uma variável e trabalhe com ela de forma dinâmica, segue um exemplo: total_de_paginas = Fonte[total_de_paginas], #"Converted to Table" = Table.FromList({1..total_de_paginas}, Splitter.SplitByNothing(), null, null, ExtraValues.Error) Espero que te ajude, boa sorte!
@paulorobertocardosonogueir172
@paulorobertocardosonogueir172 3 жыл бұрын
@@rafaelslash2008 Tem como limitar sim Felipe. Armazene a quantidade total de páginas do response em uma variável e trabalhe com ela de forma dinâmica, segue um exemplo: total_de_paginas = Fonte[total_de_paginas], #"Converted to Table" = Table.FromList({1..total_de_paginas}, Splitter.SplitByNothing(), null, null, ExtraValues.Error) Espero que te ajude, boa sorte!
@gestionproductiva1233
@gestionproductiva1233 4 жыл бұрын
Gran explicación. Paso a paso. Muchas gracias.
@media.k_web
@media.k_web 2 жыл бұрын
E quando é paginado por link? Estou usando a API do Facebook e ela me retorna paginado com uma espécie de código: paging": { "cursors": { "before": "MjM4NTExNzIzMDIzOTAyMDcZD", "after": "MjM4NTExNzIyNzc1NTAyMDcZD" }, "next": "link da próxima página com o código do "after"" Seria mais fácil se paginasse por "page": "1" rsrs Queria automatizar a procura pelas próximas páginas ao invés de adicionar página por página.
@DevAnalytics
@DevAnalytics 2 жыл бұрын
Media K, no penúltimo vídeo do canal nos tratamos de uma API com este mesmo conceito 👍🏻👍🏻👍🏻
@haynersan
@haynersan 5 жыл бұрын
Excelente vídeo! Super útil! Fiz uns testes variando um pouco o cenário e com a base conceitual apresentada aqui deu super certo. Parabéns pela didática, parabéns pelo conteúdo de muito valor. Continue assim.....
@rafaelcosta4734
@rafaelcosta4734 5 жыл бұрын
Excelente aula. Obrigado!
@DevAnalytics
@DevAnalytics 4 жыл бұрын
Muito obrigado, Rafael 👊
@MikelSFraga
@MikelSFraga 5 жыл бұрын
Mestre Raphael, boa tarde. Realmente muito show o vídeo. Precisei de uma solução como essa a umas 3 semanas atrás e segui o mesmo padrão que mostrou aqui. Realmente muito legal. Estou curtindo muito a Language M, mais ainda sou um Padawan Uma sugestão sobre a criação da consulta com a paginação, seria criar uma consulta em branco e em Source (Fonte), entrar com o seguinte código: = Table.FromList({1..100}, Splitter.SplitByNothing(), {"Pages"}, null, ExtraValues.Error) Através da expressão {1..100}, automaticamente é criada uma listagem com a numeração 1 a 100. Usando a função Table.FromList, já converte automaticamente essa listagem em uma tabela, com a coluna nomeada como Pages. Na sequencia, é só fazer o Invoke, conforme feito no vídeo. Raphael, excelente aula. Uma sugestão, se for conveniente, seria uma playlist focada em Language M, especificamente no esquema de criação de funções. Acho que seria muito legal. Parabéns mais uma vez e excelente semana.
@DevAnalytics
@DevAnalytics 5 жыл бұрын
Mikel S Fraga, muito obrigado por sua contribuição aqui no canal. Ótima dica sobre a criação da tabela para fazer a paginação. Inclusive, se a API tiver um endPoint para pegar o total de registros da base, seria totalmente viável a automatização deste step, seguindo o seu exemplo 😉 Eu tenho muita vontade de criar uma playlist somente sobre M Language e fico feliz em saber que há pessoas interessadas neste assunto! Mais uma vez muito obrigado! Um forte abraço!!!
@gdecome
@gdecome 4 жыл бұрын
@@DevAnalytics Se não estou enganado você tem a informação da quantidade de registros no arquivo pra fazer a paginação. Ver video no minuto 17:30
@gpcon.
@gpcon. 4 жыл бұрын
Ótimo video! Sou contador e conheço bem o Omie é um ótimo produto mas infelizmente quando o tema é out put de informação eles pecam bastante. Esse video é melhor inclusive que o próprio material da Omie sobre Api. Parabéns!
@jimmyni1983
@jimmyni1983 5 жыл бұрын
Excelente tutorial! Caraaaaacaaa! Muito bommmm! Parabéns novamente Raphael! Jedi! Forte abraço.
@DevAnalytics
@DevAnalytics 5 жыл бұрын
Jimmy, valeu mokeredo! 👊👊👊
@ednaldomar2442
@ednaldomar2442 2 жыл бұрын
Na chamada de dados em uma API do tipo POST no POWER BI, apresentou a seguinte falha: " (400): Bad Request". Onde pode está a falha? ESTRUTURA: let body = "[ { ""ValorStr"":""null"", ""Descricao"":""DataIni"", ""ValorDate"":""2022-08-01T00:00:00-03:00"", ""ValorNum"":""null"" }, { ""ValorStr"":""null"", ""Descricao"":""DataFim"", ""ValorDate"":""2022-08-02T23:59:59-03:00"", ""ValorNum"":""null"" }, { ""ValorStr"":""2"", ""Descricao"":""Até"", ""ValorDate"":""null"", ""ValorNum"":""null"" } ]", request = Json.Document( Web.Contents( url, [ Headers= [ #"Content-Type"="application/json", #"Authorization" = Bearer_Token ], #"Content" = Text.ToBinary(body) ] ) ) in request
@DevAnalytics
@DevAnalytics 2 жыл бұрын
Fala Ednaldo, tudo certinho? Dei uma olhada no seu exemplo e percebi que o Parâmetro Content estava desta forma #"Content" = Text.ToBinary(body), mas o correto seria sem o #"", ficando apenas Content = Text.To.... Além disso, sugiro usar a função Json.FromValue para deixar o body mais limpo. Seu exemplo ficaria assim: let body = Json.FromValue({ [ ValorStr = "null", Descricao = "DataIni", ValorDate = "2022-08-01T00:00:00-03:00", ValorNum = "null" ], [ ValorStr = "null", Descricao = "DataFim", ValorDate = "2022-08-02T23:59:59-03:00", ValorNum = "null" ], [ ValorStr = "2", Descricao = "Até", ValorDate = "null", ValorNum = "null" ] }), request = Json.Document( Web.Contents( url, [ Headers = [ #"Content-Type" = "application/json", Authorization = Bearer_Token ], Content = body ] ) ) in request Desta forma, você não precisa usar o Text.ToBinary(body), colocando apenas body mesmo ;) Espero te lhe ajudado! Abração!
@ednaldomar2442
@ednaldomar2442 2 жыл бұрын
@@DevAnalytics boa noite. Fico grato pelo retorno e as orientações. Então, mesmo com as dicas, continua dando o mesmo erro. Referente aos Headers (QUE PODE SER ONDE EU ESTOU ERRANDO), a documentação pede o seguinte: Hearders Authorization bearer xxx.xxxx.xxx, Accept application/vnd.api+json, Content-Type application/vnd.api+json
@thiagochaves1633
@thiagochaves1633 3 жыл бұрын
Muito bacana Raphael, consegui acompanhar e entender perfeitamente o vídeo. Esbarrei num ponto, de que forma vc conectou as credenciais no pbi?
@DevAnalytics
@DevAnalytics 3 жыл бұрын
Fala Thiago, beleza? Eu conectei basicamente usando as credenciais em parâmetros do power bi e usando o tipo anonymous no Power BI serviço! Forte abraço!
@rafaelslash2008
@rafaelslash2008 3 жыл бұрын
@@DevAnalytics Aqui antes estava funcionando normalmente como anonymous, mas agora não tá aceitando mais... deve ter sido alguma atualização? Fica dando o seguinte erro: DataSource.Error: Os dados baixados são HTML, que não é um tipo esperado. A URL pode estar incorreta, ou talvez você não tenha fornecido as credenciais corretas ao servidor.
@davidpanduro7891
@davidpanduro7891 3 жыл бұрын
@@rafaelslash2008 Também estou com esse problema...a minha conexão funcionava perfeitamente, até que desde o 29/04 não atualiza mais. Resulta que foi uma adequação a LGPD, uma segurança a mais pra proteger o app key e app secret. O grande problema é que não sei como resolver. Rapha, salva a gente!
@davidpanduro7891
@davidpanduro7891 3 жыл бұрын
@@rafaelslash2008 inclusive tentei com a conexão básica colocando meu user e senha do OMIE mas ai a resposta é: "Erro na consulta ‘requestNFSEs’. DataSource.Error: Há suporte para Web.Contents com a opção Content somente durante uma conexão anônima".
@DevAnalytics
@DevAnalytics 3 жыл бұрын
Pessoal, houve uma alteração na plataforma da Omie, onde existiam duas formas de conexão. A que usamos foi bloqueada, por isso é necessário migrar a forma desta conexão. Eu estou vendo para criar um vídeo, explicando estas alterações 👍
@edirlopeslima7556
@edirlopeslima7556 3 жыл бұрын
Bom dia, parabéns pelos vídeos, tem como conectar com as APIs do Mercado Livre, B2W e MagaLu?
@DevAnalytics
@DevAnalytics 3 жыл бұрын
Muito obrigado, Edir! Anotada as dicas ;)
@alessandrolino
@alessandrolino 4 жыл бұрын
Muito bom parabéns!!
@janquieldapper
@janquieldapper 4 жыл бұрын
Olá amigo... o powerbi já tem novos métodos para conectar a API's (json)?
@jaasiellima5783
@jaasiellima5783 3 жыл бұрын
Olá, Irmão! Acaso eu queira programar uma atualização automática no Service como faz pra inserir credenciais quando a API não é aberta, ou seja, eu abri com um tokem no desktop mas está dando problema pois não consegui inserir credenciais se é do tipo Basic, windowswithoutlmpersonation pois eu sei que anonymous não é, favor! pode ajudar?
@DevAnalytics
@DevAnalytics 3 жыл бұрын
Fala Jaasiel! Por incrível que possa parecer, conexões em APIS que levam as credenciais na requisição (seja elas no body ou header) devem ter o tipo anonymous ;)
@jaasiellima5783
@jaasiellima5783 3 жыл бұрын
@@DevAnalytics grato pelo retorno, já havia conseguido, de toda sorte, agradeço!
@JulivanLopes
@JulivanLopes 2 жыл бұрын
Muito bom o vídeo. Um dos vídeos raros sobre o assunto , parabéns por trazer conteudo tao detalhado. Agora uma curiosidade, quando vc coloca varias etapas dentro da Função, seria para ganhar em performance? tem alguma diferença nesse caso? Um abraço!
@DevAnalytics
@DevAnalytics 2 жыл бұрын
Muito obrigado, Julivan! Sobre a curiosidade, no caso específico as etapas não fariam muita diferença em termos de performance, embora em outros casos (transformação de dados) isso seja uma verdade. Se observares nos vídeos mais novos do canal, eu introduzo o conceito de uso de funções, que ao meu ver, torna o processo muito mais escalável 👍🏻👍🏻👍🏻
@wanderleypinheiro8868
@wanderleypinheiro8868 4 жыл бұрын
Raphael muito bom, consegui fazer, porem pensando na situação da paginação, no postman ele tras a informação de total_de_paginas, assim como total de registros... será que não consegue dar mais uma olhada para fazermos funcionar tudo?? grande abraço e parabéns...
@gianrieffel
@gianrieffel 4 жыл бұрын
Eu também fiquei bem curioso em como deixar a quantidade de páginas de forma dinâmica
@paulorobertocardosonogueir172
@paulorobertocardosonogueir172 3 жыл бұрын
@@gianrieffel espero que te ajude total_de_paginas = Fonte[total_de_paginas], #"Converted to Table" = Table.FromList({1..total_de_paginas}, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
@wasleysanttos
@wasleysanttos 4 жыл бұрын
Tem algum vídeo com oauth 1 usando authorization ?
@Katsunay
@Katsunay 3 жыл бұрын
Nossa, obrigadíssimo pelo conteúdo, está me ajudando muito em um projeto!! Uma dúvida que eu tenho é sobre a requisição em si.. O endpoint vai receber a requisição de onde? do servidor do PBI, do meu pc? E em relação ao conteúdo que foi scrapado, tem algum limite de tamanho pra armazenamento? É possível encaminhar esse conteúdo pra um banco de dados? Valeu!!!!
@DevAnalytics
@DevAnalytics 3 жыл бұрын
Muito obrigado tmbm Júlio. Sobre a sua dúvida, se a consulta estiver rodando no Power BI serviço, a requisição partirá de lá (seja qual VM estiver rodando o seu serviço na Azure, coisa que só a microsoft sabe rsrsrsrsrs). Agora, se estiveres rodando de um .pbix na sua máquina, as requisições sairão dela. Sobre o limite de armazenamento, no Power BI Desktop é o limite que a sua máquina comportará, já no Power BI Serviço, o limite será o que o tipo da sua licença permitir (1GB para PRO, 100GB para PPU, e para o premium por capacity é a própria capacity). Não creio que seja possível (ou recomendado) gravar dados no banco através de uma conexão com o Power BI
@caiocaixe8940
@caiocaixe8940 4 жыл бұрын
Blz Raphael? recebi um endpoint, um token e uma instancia, para uma requisição tipo get. como faço para conectar e consumir esses dados?
@DevAnalytics
@DevAnalytics 4 жыл бұрын
Fala Caio! Tudo certo? Então, normalmente o token pode ser passado via headers da requisição, ou via query params. Basta criar uma conexão "Obter dados da Web", selecionar a opção Avançadas e lá colocar o endpoint, os headers e query params. Ou se preferires ir mais para o caminho hardcore (o que eu mais gosto rsrsrsrs), vc pode criar uma consulta nula e lá usar a função Web.Contents, passando o token. Fazendo isso, você conseguirá obter os dados ;)
@rafaelrafa4392
@rafaelrafa4392 4 жыл бұрын
Rapahel boa tarde, gostaria de conectar o power bi com uma base de dados de um sistema online, o sistema é online, porém quando tento extrair a base de dados dele, deixa pra mim a tela de login e não a tela onde tenho a tabela de dados. Poderia me ajudar por favor??
@maurelior68
@maurelior68 4 жыл бұрын
Rafael boa noite!!! Muito bom seu vídeo! Consegui perfeitamente acessar a API do Omie ! Apenas busquei uma outra tabela! Queria tirar uma dúvida com você! Essa foi uma API de teste! Para conectar na base de dados de produção para buscar os dados reais, preciso de uma API com credenciais de acesso a minha base?
@DevAnalytics
@DevAnalytics 4 жыл бұрын
Obrigado, Março! Sim, para vc consumir os dados reais da Omie, vc precisa ser cliente e obter as credenciais de acesso a API de produção deles 👍
@raphaelbonillo2192
@raphaelbonillo2192 4 жыл бұрын
Acredito que se houver um Pop-up para login esse método não funcione e precise de alterações.
@fernando6351
@fernando6351 4 жыл бұрын
Sensacional! Muito obrigado pelo conteúdo, porém, nos 45min do segundo tempo deu um erro que não consigo solucionar ([Expression.Error] A coluna 'Column1' da tabela não foi encontrada.). Como eu resolvo isso?
@leandrofelipetec
@leandrofelipetec 4 жыл бұрын
Boa tarde, Raphael! Obrigado pelas dicas, muito top! Estou com uns erros insanos por aqui, não consigo conectar a minha "API REST WSPOT 1." no power bi, já fez algo do tipo? Abraços
@gianrieffel
@gianrieffel 4 жыл бұрын
Olá Raphael, muito obrigado por isso, fazia tempo que eu estava tentando. Olha como eu consegui pra deixar o número de páginas dinâmico: Eu peguei a primeira importação que tu fizeste, transformei em tabela, filtrei a linha da quantidade de linhas e transformei o valor numa lista, tudo isso dentro de uma variável. Com essa variável eu usei a function List.Numbers, iniciando em um e com incremento (total de linhas) Aí depois só expandi conforme tu ensinou. let Fonte = let #"Listar Clientes" = Json.Document(Web.Contents("app.omie.com.br/api/v1/geral/clientes/?JSON={""call"":""ListarClientes"",""app_key"":""1560731700"",""app_secret"":""226dcf372489bb45ceede61bfd98f0f1"",""param"":[{""pagina"": 1 ,""registros_por_pagina"": " & limit & ",""apenas_importado_api"":""N""}]}" ) ), #"Convertido para Tabela" = Record.ToTable(#"Listar Clientes"), #"Linhas Filtradas" = Table.SelectRows(#"Convertido para Tabela", each ([Name] = "total_de_paginas")), Value1 = #"Linhas Filtradas"{0}[Value], lista = List.Numbers (1, Value1) in lista, #"Convertido para Tabela" = Table.FromList(Fonte, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Colunas Renomeadas" = Table.RenameColumns(#"Convertido para Tabela",{{"Column1", "Lista"}}), #"Função Personalizada Invocada" = Table.AddColumn(#"Colunas Renomeadas", "request", each request([Lista])), #"request Expandido" = Table.ExpandTableColumn(#"Função Personalizada Invocada", "request", {"bairro", "bloquear_faturamento", "cep", "cidade", "cidade_ibge", "cnae", "cnpj_cpf", "codigo_cliente_integracao", "codigo_cliente_omie", "codigo_pais", "complemento", "contato", "contribuinte", "email", "endereco", "enderecoEntrega", "endereco_numero", "estado", "exterior", "inativo", "info", "inscricao_estadual", "inscricao_municipal", "nome_fantasia", "observacao", "optante_simples_nacional", "pessoa_fisica", "produtor_rural", "razao_social", "recomendacoes", "tags", "tipo_atividade", "telefone1_ddd", "telefone1_numero", "telefone2_ddd", "telefone2_numero"}, {"bairro", "bloquear_faturamento", "cep", "cidade", "cidade_ibge", "cnae", "cnpj_cpf", "codigo_cliente_integracao", "codigo_cliente_omie", "codigo_pais", "complemento", "contato", "contribuinte", "email", "endereco", "enderecoEntrega", "endereco_numero", "estado", "exterior", "inativo", "info", "inscricao_estadual", "inscricao_municipal", "nome_fantasia", "observacao", "optante_simples_nacional", "pessoa_fisica", "produtor_rural", "razao_social", "recomendacoes", "tags", "tipo_atividade", "telefone1_ddd", "telefone1_numero", "telefone2_ddd", "telefone2_numero"}) in #"request Expandido"
@wctins
@wctins 4 жыл бұрын
O meu não funcionou desse jeito. Deu erro de request. O teu está de boa?
@vitoramarante2694
@vitoramarante2694 4 жыл бұрын
@@wctins Eu tive um problema na hora do request, como se a tipagem do dado ficasse diferente.
@henriquesalesleite1653
@henriquesalesleite1653 4 жыл бұрын
Muito bom o video, me ajudou bastante. Será que vc sabe alguma solução para aplicar esta mesma ideia no Power Query no Excel ? Tentei aqui e deu "Expression.Error: A avaliação resultou em estouro da pilha e não pôde continuar." Se puder me ajudar eu agradeço muito.
@4man1doll
@4man1doll 4 жыл бұрын
esstou tentando obter um token para deletar dados de um dataset docs.microsoft.com/en-us/rest/api/power-bi/pushdatasets/datasets_deleterows usando uso a API Rest do Power Bi, porem não consigo de forma alguma dar um refresh no token ou mesmo obter um token valido, consegue me ajudar ?
@fabiorony5411
@fabiorony5411 3 жыл бұрын
fala Dr, como posso passar este body la no consulta nula? estou tentando adaptar mais ainda vem dando erro. segue body abaixo: api-dw.bseller.com.br/webquery/execute/SIGEQ280 "P_ID_CIA":11422, "DT_INICIO":"01/11/2020", "DT_FIM":"05/11/2020", "P_ID_FILIAL":1, "P_ID_ORIGEM": null, "P_ID_SITUACAO": null, "P_UNINEG": null
@DevAnalytics
@DevAnalytics 3 жыл бұрын
Fala @Liga da Maromba! O body pode ter sua estrutura criada através de uma variável, onde cada chave do json ou valor fiquem entre dois pares de aspas duplas (ex: ""P_ID_CIA""). Já na requisição, você deverá usar o prefixo Content para encapsular o body. Ps: inclua o body usando a função Text.ToBinary ;)
@fabiorony5411
@fabiorony5411 3 жыл бұрын
let body = "{ ""P_ID_CIA"":""11422"", ""DT_INICIO"":""07/12/2020"", ""DT_FIM"":""07/12/2020"", ""P_ID_FILIAL"":""1"" ""P_ID_ORIGEM"": ""null"", ""P_ID_SITUACAO"": ""null"", ""P_UNINEG"": ""null"" }", request = Json.Document( Web.Contents( path, [ Headers=[#"X-Auth-Token"="kdsjfsjkdfjbfjdbjldbvdbvfdb"], Content=Text.ToBinary(body) ] )) in request ===================================================================== apresenta este erro :( DataSource.Error: Falha no Web.Contents ao obter conteúdo de 'api-dw.bseller.com.br/webquery/execute/SIGEQ280' (415): Detalhes: DataSourceKind=Web DataSourcePath=api-dw.bseller.com.br/webquery/execute/SIGEQ280 Url=api-dw.bseller.com.br/webquery/execute/SIGEQ280
@adriel0792
@adriel0792 5 жыл бұрын
Muito incrível, porém a minha API trabalha com paginação automática (a cada inserção de dado dos colaboradores ela aumenta). Ou seja, você insere a TimeStamp que deseja, ela traz 50 paginações e para aonde dá. Não consegui criar um estrutura para inserir a paginação seguinte e assim ir alimentando os dados que sempre aumentam, consegue me ajudar?
@paulorobertocardosonogueir172
@paulorobertocardosonogueir172 3 жыл бұрын
Adriel, veja se no retorno do response tem a quantidade total de páginas, caso haja, você pode utilizar este trecho de código para ajudar na paginação dinâmica: total_de_paginas = Fonte[total_de_paginas], #"Converted to Table" = Table.FromList({1..total_de_paginas}, Splitter.SplitByNothing(), null, null, ExtraValues.Error) Espero que te ajude
API com OAuth2 e paginação por cursor no Power BI
44:59
devAnalytics
Рет қаралды 9 М.
Real Man relocate to Remote Controlled Car 👨🏻➡️🚙🕹️ #builderc
00:24
Which team will win? Team Joy or Team Gumball?! 🤔
00:29
BigSchool
Рет қаралды 15 МЛН
МЕНЯ УКУСИЛ ПАУК #shorts
00:23
Паша Осадчий
Рет қаралды 2,4 МЛН
Power BI - Conectando na API Omie
20:52
devAnalytics
Рет қаралды 14 М.
API OMIE no Power BI - Consulta Cidades
18:39
Chora API
Рет қаралды 5 М.
Como usar API no Power BI para Importar Cotações [Case Prático]
44:08
Hashtag Treinamentos
Рет қаралды 42 М.
Como fazer ATUALIZAÇÃO INCREMENTAL em chamadas de API no Power BI
29:00
Xperiun | Data Analytics
Рет қаралды 9 М.
Integrando dados de uma API paginada no Power BI
18:26
OpServices TI
Рет қаралды 8 М.
Extração via API utilizando o Excel ou Power BI - Parte 1
28:27
PROF DARLAN - EXCEL
Рет қаралды 30 М.