Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda para usar conteúdo de API externo


Maurício Fontes

Pergunta

Boa noite galera, eu estou desenvolvendo um aplicativo online que consiste em ser uma lista/tabela de itens onde você vê todos os itens disponíveis, digamos que são 700 peças. E com a consulta em um API externo eu posso verificar as peças que tal cliente tem e identificá-las nesta lista.

Basicamente quero fazer assim, se o cliente tem 400 peças destas 700, quero marcar no slot de cada uma se ele tem ou não (via php e html), vou validar cada uma com seu próprio ID, e estas IDs serão fornecidas por um API do desenvolvedor que tem o controle delas, o problema está em como vou retirar a ID de cada peça e por para validar em cada DIV do meu código, segue abaixo o que eu tenho construído.

<?php
header('Content-type: text/html; charset=utf-8');

//chave de acesso e outras informações que vou pegar via GET, que por ora estão estáticas

$APIkey = 'pvmg7w2tdunbq7qs2dxf6azf6rmvzknc';

$RegionName = 'us';
$LocaleName = 'pt_BR';

$RealmName = str_replace(' ', '%20', 'Goldrinn');
$PlayerName = 'astaroft';

//link do API

$json_wow_api_url = file_get_contents('https://'.$RegionName.'.api.battle.net/wow/character/'.$RealmName.'/'.$PlayerName.'?fields=pets&locale='.$LocaleName.'&apikey='.$APIkey.'');

//decodificação e o que eu tentei fazer para tentar extrair algumas informações, mas sem sucesso

$petData = json_decode($json_wow_api_url, true);
$pets = ($petData["pets"]);

$pets = (object) $pets;

//visualizando variavel

echo "<pre>";
var_dump ($pets->collected);
echo "</pre>";

?>

Abaixo um pouco do que consiste o código API do desenvolvedor depois de já convertido pelo meu PHP.

object(stdClass)#1 (3) {
  ["numCollected"]=>
  int(537)
  ["numNotCollected"]=>
  int(293)
  ["collected"]=>
  array(537) {
    [0]=>
    array(14) {
      ["name"]=>
      string(14) "Anderson Silva"
      ["spellId"]=>
      int(135265)
      ["creatureId"]=>
      int(68663)
      ["itemId"]=>
      int(93037)
      ["qualityId"]=>
      int(3)
      ["icon"]=>
      string(47) "achievement_dungeon_coablackdragonflight_heroic"
      ["stats"]=>
      array(7) {
        ["speciesId"]=>
        int(1153)
        ["breedId"]=>
        int(4)
        ["petQualityId"]=>
        int(3)
        ["level"]=>
        int(25)
        ["health"]=>
        int(1400)
        ["power"]=>
        int(325)
        ["speed"]=>
        int(260)
      }
      ["battlePetGuid"]=>
      string(16) "000000000533A8E8"
      ["isFavorite"]=>
      bool(true)
      ["isFirstAbilitySlotSelected"]=>
      bool(true)
      ["isSecondAbilitySlotSelected"]=>
      bool(true)
      ["isThirdAbilitySlotSelected"]=>
      bool(true)
      ["creatureName"]=>
      string(26) "Dragoguarda Garra da Morte"
      ["canBattle"]=>
      bool(true)
    }
    [1]=>
    array(14) {
      ["name"]=>
      string(3) "Ass"
      ["spellId"]=>
      int(0)
      ["creatureId"]=>
      int(65324)
      ["itemId"]=>
      int(0)
      ["qualityId"]=>
      int(3)
      ["icon"]=>
      string(29) "inv_pet_babycloudserpent_gold"
      ["stats"]=>
      array(7) {
        ["speciesId"]=>
        int(818)
        ["breedId"]=>
        int(8)
        ["petQualityId"]=>
        int(3)
        ["level"]=>
        int(25)
        ["health"]=>
        int(1400)
        ["power"]=>
        int(305)
        ["speed"]=>
        int(273)
      }
      ["battlePetGuid"]=>
      string(16) "000000000533A911"
      ["isFavorite"]=>
      bool(true)
      ["isFirstAbilitySlotSelected"]=>
      bool(false)
      ["isSecondAbilitySlotSelected"]=>
      bool(true)
      ["isThirdAbilitySlotSelected"]=>
      bool(true)
      ["creatureName"]=>
      string(19) "Serpentinha Dourada"
      ["canBattle"]=>
      bool(true)
    }
    [2]=>
    array(14) {
      ["name"]=>
      string(6) "Babalu"
      ["spellId"]=>
      int(134895)
      ["creatureId"]=>
      int(68468)
      ["itemId"]=>
      int(92800)
      ["qualityId"]=>
      int(3)
      ["icon"]=>
      string(31) "inv_pet_pandarenelemental_earth"
      ["stats"]=>
      array(7) {
        ["speciesId"]=>
        int(1126)
        ["breedId"]=>
        int(7)
        ["petQualityId"]=>
        int(3)
        ["level"]=>
        int(25)
        ["health"]=>
        int(1546)
        ["power"]=>
        int(289)
        ["speed"]=>
        int(260)
      }
      ["battlePetGuid"]=>
      string(16) "000000000533A92A"
      ["isFavorite"]=>
      bool(true)
      ["isFirstAbilitySlotSelected"]=>
      bool(false)
      ["isSecondAbilitySlotSelected"]=>
      bool(false)
      ["isThirdAbilitySlotSelected"]=>
      bool(false)
      ["creatureName"]=>
      string(27) "Espírito da Terra Pandaren"
      ["canBattle"]=>
      bool(true)
    }

 

O que eu quero fazer é usar a classe "creatureId" para fazer a validação, sendo que se o ID existir nesse JSon, o bloco toma a aparência deste item e faz outra função que já está determinada, caso contrário, o bloco da DIV se torna branco e executa outra função que também já está concluído.

O meu problema está em validar estes "creaturesId" de TODO o código, visto que cada cliente tem o seu próprio, como por exemplo:

Criatura 68468 = ID existe

Criatura 66785 = ID não existe

Criatura 65324 = ID existe

Basicamente preciso verificar se existe ou não, mas tenho conhecimento limitado em PHP e não sei como poderia executar esta função.

Agradeço a atenção de todos que puderam ler até aqui e ainda mais aos que puderem me dar uma força nesta batalha! xD.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...