[jquery/json] Json Gegevens uitlezen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • _trickster_
  • Registratie: Mei 2005
  • Laatst online: 10-09 21:16
ik ben bezig met het maken van een pagina met Twitterberichten.

Ik haal de gegevens op uit een JSON bestand via de Twitter search API, maar ik kom er niet uit.
Ik heb verschillende scripts nagekeken om uit te zoeken waar ik fout zit maar helaas wil dat niet baten.
het gaat om de volgende code:

code:
1
2
3
4
5
6
$.getJSON("http://search.twitter.com/search.json?q=+%23tweakers&callback=?",
       function(data){     
               $.each(data, function(i,item){
                       $(".tweets" + i).append("Gebruikersnaam: " + item.from_user + "Bericht:" item.text);
               });
       })


maar alles blijft dan helaas leeg.
Al gebruik ik een andere Feed van twitter werkt het wel, maar aangezien je daar niet op hashtag kan zoeken wil ik de 'echte' search feed gebruiken.

Werkende Feed:Open in Viewer
Niet werkende Feed:Open in Viewer

Ik zie zelf wel dat de indeling anders is van de feed, maar ik heb echt zelf geen idee hoe ik het er uit kan krijgen, en kan het ook nergen vinden.

wat zie ik over het hoofd ?

Edit: Json data Duidelijk Leesbaar gemaakt

[ Voor 6% gewijzigd door _trickster_ op 08-01-2011 19:33 ]


Acties:
  • 0 Henk 'm!

  • Cosca
  • Registratie: Mei 2006
  • Laatst online: 14-11-2023
Je kan met javascript geen requests maken naar een ander domein.
Due to browser security restrictions, most "Ajax" requests are subject to the same origin policy; the request can not successfully retrieve data from a different domain, subdomain, or protocol.
bron

edit: Oeps, dit geldt niet voor JSONP-requests. Helemaal over heen gegekeken.. |:(

[ Voor 13% gewijzigd door Cosca op 08-01-2011 19:14 ]


Acties:
  • 0 Henk 'm!

  • Gamebuster
  • Registratie: Juli 2007
  • Laatst online: 01-08 10:05
Oplossing:

Maak een serverside script dat de data ophaalt via het twitter API en spreek dat script aan vanuit Javascript

-of beter, maak een serverside script dat de data via het twitter API met een vaste interval (iedere minuut?) ophaalt (of "on-demand", wanneer iemand een request doet en de data langer dan een X aantal seconden/minuten voor het laatst is opgehaald) en opslaat in een database/bestandje, zodat niet iedere AJAX-request vereist dat jouw server die data opnieuw moet ophalen.


edit: op basis van hierboven:
Script and JSONP requests are not subject to the same origin policy restrictions.
dammit, als ik dat had geweten had me dat een hoop gekloot bespaard in het verleden :P

nutteloze reactie van mij dus.

[ Voor 19% gewijzigd door Gamebuster op 08-01-2011 19:18 ]

Let op: Mijn post bevat meningen, aannames of onwaarheden


Acties:
  • 0 Henk 'm!

  • _trickster_
  • Registratie: Mei 2005
  • Laatst online: 10-09 21:16
ik denk zelf dat het echt zit in het structuur van de data, aangezien daar de enige verschillen in zit.
de rechten wel allemaal wel te kloppen.

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Als je nou eens de (relevante) data (bijvoorbeeld één record) hier in een code-tekstvak zet kun je de ontvangen data lezen zonder dat iedereen die JSON-string moet downloaden en vergelijken.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • _trickster_
  • Registratie: Mei 2005
  • Laatst online: 10-09 21:16
CodeCaster schreef op zaterdag 08 januari 2011 @ 19:24:
Als je nou eens de (relevante) data (bijvoorbeeld één record) hier in een code-tekstvak.....
In de starterspost nu een link gezet naar een Json viewer zodat het duidelijk leesbaar is

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-09 08:45

Bosmonster

*zucht*

Raar, zou namelijk gewoon moeten werken.

edit: ah de link in de url doet het nu wel gewoon?

[ Voor 40% gewijzigd door Bosmonster op 08-01-2011 20:13 ]


Acties:
  • 0 Henk 'm!

  • _trickster_
  • Registratie: Mei 2005
  • Laatst online: 10-09 21:16
Bosmonster schreef op zaterdag 08 januari 2011 @ 20:12:
Raar, zou namelijk gewoon moeten werken.
edit: ah de link in de url doet het nu wel gewoon?
welke link zou niet werken of nu weer wel ?
want alles lijkt hier gewoon in orde.

Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 11-09 22:33
Het lijkt nu wel te werken inderdaad... Althans in die viewer.

Acties:
  • 0 Henk 'm!

  • loentje3
  • Registratie: Januari 2011
  • Laatst online: 03-07 14:49
Deze code zou wel moeten werken.

code:
1
2
3
4
5
6
$.getJSON("http://search.twitter.com/search.json?q=+%23tweakers&callback=?",
       function(data){
            $.each(data.results, function(i,item){
                $(".tweets").append("Gebruikersnaam: " + item.from_user + "Bericht:" + item.text);
         });
    });


Ik heb 2 kleine foutjes kunnen ontdekken in de code.
In de string die je append was je het laatstje "+" tekentje vergeten.
Ik denk dat het probleem vooral zat in de each loop. Ik heb daar data vervangen door data.results.
Doormiddel van firebug en console.log was ik erachter gekomen dat daar alle items in stonden.
Ik denk dat de verkeerde data werd ingeladen omdat hij nu alles uit het data object pakte, in plaats van alleen de results.

Acties:
  • 0 Henk 'm!

  • _trickster_
  • Registratie: Mei 2005
  • Laatst online: 10-09 21:16
Bedankt, dit is inderdaad de oplossing.
ik zal me toch maar eens meer moeten gaan verdiepen in de Firebug plugin en andere debug tools om dit soort problemen makkelijker te kunnen vinden.

Maar alsnog bedankt.
Pagina: 1